Хостинг. 301 редирект: замена одного символа
|
Здравствуйте.
На сайте было много url вида:
site.com/?p=123 (цифры разные)
site.com/?page_id=2 (цифры разные)
site.com/?paged=2 (цифры разные)
site.com/?cat=123 (цифры разные)
site.com/?cat=6&paged=2 (цифры разные)
site.com/?m=20110202 (цифры разные)
После некоторых манипуляций с сайтом все url изменились таким образом: ? (знак вопроса) поменялся на _ (нижнее подчеркивание). Т.е. стало так:
site.com/_p=123 (цифры разные)
site.com/_page_id=2 (цифры разные)
site.com/_paged=2 (цифры разные)
site.com/_cat=123 (цифры разные)
site.com/_cat=6&paged=2 (цифры разные)
site.com/_m=20110202 (цифры разные)
Подскажите, пожалуйста, как настроить в этом случае постраничный 301 редирект?
|
|
Попробуйте такой вариант:
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^([a-zA-Z_]+=[0-9]+&?)+$
RewriteRule ^ http://site.com/_%{QUERY_STRING}? [R=301,L]
Редирект будет срабатывать только при обращении к главной странице с любым количеством GET-параметров вида «буквы_или_подчёркивания=цифры».
Для других страниц или параметров, где вместо цифр будут другие символы, редирект выполняться не будет.
Правила лучше размещать в самом начале .htaccess.
|
|
Ваш способ работает, спасибо большое!
П.С. Судя по тому, сколько на форуме вопросов по 301 редиректу, может стоит как-то выделить этот вопрос в отдельный раздел или FAQ? Заодно и за поисковой трафик можно побороться по этой теме.
|
Тема закрита.