Задать вопрос
@zapatronen

Как избавиться от дубля ссылки с GET параметром?

Здравствуйте, Я без прелюдий.

Старые ссылки имеют вид:
site.com/product.php?article=PP620

Добавил еще один параметр к ссылке название товара, чтобы в ссылке фигурировали ключеви и получил следующее:
site.com/product.php?article=PP620&name=arduino-uno

После преобразования ссылки в ЧПУ с двумя параметрами получаю:
site.com/PP620/arduino-uno.html

Но все равно остается два виды ссылки на один и тот же товар, а именно: ссылка с одним параметром и ссылка преобразованная в ЧПУ.

Каким образом я могу переадресовать с ссылки с одним GET на ссылку с двумя GET ?

Вот мой код, который преобразует и переадресосывает без бесконечной переадресации. Помогите подсказкой, модифицировать код или нужно еще условие добавить?

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^article=([^&]*)&name=([^&]*)
RewriteRule ^product\.php$ /%1/%2.html? [R=301,L]
RewriteRule ^([^/]*)/([^/]*)\.html$ /product.php?article=$1&name=$2 [L]
  • Вопрос задан
  • 190 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@roxik
Это уже в коде сайта сделать редирект.
Ответ написан
Комментировать
я бы на вашем месте разделил квери отдельно
так и с условиями можно будет поработать.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} (^)article\=(.+[^&])$
RewriteCond %{QUERY_STRING} (^|&)name=($|&)
RewriteRule ^product\.php$ /%1/%2.html? [R=301,L]
RewriteRule ^([^/]*)/([^/]*)\.html$ /product.php\?article=$1&name=$2 [L]

не забывайте экранировать спецсимволы
\=
\?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы