Страница 1 из 1

Редирект с параметрами

СообщениеДобавлено: Чт авг 04, 2016 1:41 pm
Yadomaru
Здравствуйте!
Нужно настроить редирект со старой страницы вида http://www.site.ru/index.php?param1=one ... ram3=three на новую страницу вида http://www.site.ru/catalog/page.html
Использую следующую конструкцию:
RewriteCond %{QUERY_STRING} ^param1=one&(.*)$
RewriteRule ^index.php /catalog/page.html? [R=301,L]

Все работает, НО когда параметры меняются местами, редиректа не происходит. Подскажите, пожалуйста, что где нужно изменить?
Заранее спасибо!

СообщениеДобавлено: Чт авг 04, 2016 4:48 pm
Emilien
Оставить в шаблоне только искомую строку param1=one.
Код: выделить все
RewriteCond %{QUERY_STRING} param1=one

СообщениеДобавлено: Чт авг 04, 2016 6:44 pm
Yadomaru
Emilien писал(а):Оставить в шаблоне только искомую строку param1=one.
Код: выделить все
RewriteCond %{QUERY_STRING} param1=one

Но если сделать так,
RewriteCond %{QUERY_STRING} param1=one
RewriteRule ^index.php /catalog/page.html? [R=301,L] , то перенаправление сработает и когда param1=oneX, param1=oneSЕ, например.

СообщениеДобавлено: Чт авг 04, 2016 8:02 pm
Emilien
Значит после =one ожидается символ & или конец строки метасимвол $.
Аналогично и перед param1 ожидается символ & или начало строки метасимвол ^.
Код: выделить все
RewriteCond %{QUERY_STRING} (&|^)param1=one(&|$)

СообщениеДобавлено: Пт авг 05, 2016 5:37 am
Yadomaru
Emilien писал(а):Значит после =one ожидается символ & или конец строки метасимвол $.
Аналогично и перед param1 ожидается символ & или начало строки метасимвол ^.
Код: выделить все
RewriteCond %{QUERY_STRING} (&|^)param1=one(&|$)

Огромное спасибо! Работает!)

СообщениеДобавлено: Сб сен 17, 2016 2:24 pm
Emilien
mail47002 писал(а):Всем привет
не могу раздуплить как сделать редирект с http://spool.com.ua/index.php?productID=519 на http://spool.com.ua/product_519.html
где productID=519 будут менятся. Получается редирект з подстановкой параметра

Код: выделить все
RewriteCond %{THE_REQUEST} " /index\.php\?productID=(\d+)"
RewriteRule ^ /product_%1.html? [R=301,L]