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

Обсуждение любых вопросов связанных с файлами конфигурации .htaccess

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

Сообщение Yadomaru » Чт авг 04, 2016 1:41 pm

Здравствуйте!
Нужно настроить редирект со старой страницы вида 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]

Все работает, НО когда параметры меняются местами, редиректа не происходит. Подскажите, пожалуйста, что где нужно изменить?
Заранее спасибо!
Yadomaru
 
Сообщений: 7
Зарегистрирован: Чт авг 04, 2016 1:32 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Emilien » Чт авг 04, 2016 4:48 pm

Оставить в шаблоне только искомую строку param1=one.
Код: выделить все
RewriteCond %{QUERY_STRING} param1=one
Emilien
Мл. Сержант
 
Сообщений: 84
Зарегистрирован: Чт дек 10, 2015 3:35 am
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Yadomaru » Чт авг 04, 2016 6:44 pm

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Е, например.
Yadomaru
 
Сообщений: 7
Зарегистрирован: Чт авг 04, 2016 1:32 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Emilien » Чт авг 04, 2016 8:02 pm

Значит после =one ожидается символ & или конец строки метасимвол $.
Аналогично и перед param1 ожидается символ & или начало строки метасимвол ^.
Код: выделить все
RewriteCond %{QUERY_STRING} (&|^)param1=one(&|$)
Emilien
Мл. Сержант
 
Сообщений: 84
Зарегистрирован: Чт дек 10, 2015 3:35 am
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Yadomaru » Пт авг 05, 2016 5:37 am

Emilien писал(а):Значит после =one ожидается символ & или конец строки метасимвол $.
Аналогично и перед param1 ожидается символ & или начало строки метасимвол ^.
Код: выделить все
RewriteCond %{QUERY_STRING} (&|^)param1=one(&|$)

Огромное спасибо! Работает!)
Yadomaru
 
Сообщений: 7
Зарегистрирован: Чт авг 04, 2016 1:32 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Emilien » Сб сен 17, 2016 2:24 pm

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]
Emilien
Мл. Сержант
 
Сообщений: 84
Зарегистрирован: Чт дек 10, 2015 3:35 am
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0


Вернуться в Htaccess

Кто сейчас на форуме

Зарегистрированные пользователи: YandexBot

cron