Страница 1 из 1
301 редирект по переменным
Добавлено:
Ср июл 26, 2017 7:45 pm
Yadomaru
Здравствуйте!
Есть много ссылок следующего вида: site.ru/page.php?param1=one¶m2=two¶m3=three
Подскажите, пожалуйста, как можно сделать 301 редирект всех таких страниц на такой вид: site.ru/param1/param3/
То есть для ссылки из примера будет site.ru/one/three/
И вообще реально ли это?
Заранее спасибо!
Добавлено:
Чт июл 27, 2017 9:59 am
Emilien
- Код: выделить все
RewriteCond %{THE_REQUEST} " /page\.php\?param1=([^ &]+)¶m2=([^ &]+)¶m3=([^ &]+)"
RewriteRule ^ /%1/%3? [R=301,L]
Или так
- Код: выделить все
RewriteCond %{QUERY_STRING} ^param1=([^&]+)¶m2=([^&]+)¶m3=([^&]+)
RewriteRule ^page\.php$ /%1/%3? [R=301,L]
Ну и ставить выше остальных правил.
Добавлено:
Вт авг 01, 2017 4:37 pm
Yadomaru
Спасибо большое!
А такой 301 редирект для поисковиков пройдет?
Ну то есть он же не конкретные страницы перенаправляет, а по параметрам.
Добавлено:
Чт авг 10, 2017 9:22 am
Yadomaru
Подскажите, пожалуйста, а как поступить, если есть две страницы с измененным порядком (очередностью) параметров:
site.ru/page.php?param1=one¶m2=two¶m3=three
site.ru/page.php?param3=three¶m2=two¶m1=one
и с них нужно сделать 301 редирект на site.ru/one/three/
То есть было бы здорово, если бы редирект происходил по присутствию в URL определенных переменных не обращая внимание на их позицию и наличие других переменных. Например, присутствуют в URL (page.php?...) две переменные param1 и param3 - все, значит редирект.
Заранее спасибо!
Добавлено:
Пт авг 11, 2017 8:18 am
Yadomaru
Это нереально выполнить? Может есть какой-то другой способ?
Добавлено:
Пт авг 11, 2017 6:31 pm
Emilien
Это вполне реально просто бывает, что не часто сюда заглядываю.
- Код: выделить все
RewriteCond &%{QUERY_STRING} ^(?:¶m1=([^&]+)|¶m3=([^&]+)|&[^&]*)+
RewriteCond /%1/%2 ^(/[^/]+/[^/]+)$
RewriteRule ^page\.php$ %1? [R=301,L]
Хотя если подумать, то можно сделать ещё компактнее.
- Код: выделить все
RewriteCond &%{QUERY_STRING} ^(?:¶m1=([^&]+)()|¶m3=([^&]+)()|&[^&]*)++\2\4
RewriteRule ^page\.php$ /%1/%3? [R=301,L]