Недавно возникла необходимость выполнить переадресацию URL с параметрами /index.html?page=cat&id=1 на /store/products/cat1.html Я создал такие правила mod_rewrite, чтобы сделать это:
RewriteCond %{REQUEST_URI} ^/index\.html RewriteCond %{QUERY_STRING} page=cat&id=1 RewriteRule ^(.*)$ http://%{HTTP_HOST}/store/products/cat1.html [L,QSA,R=301]
В данном примере мы проверяем, что страница, на которую пытался перейти пользователь index.html Параметры запроса в QUERY_STRING содержат искомые значения page=cat&id=1 Производим переадресацию на /store/products/cat1.html
Расшифровка RewriteRule параметов
- L — правило последнее т.е. после него не обрабатывать остальные правила mod_rewrite
- QSA — означает добавить оригинальное значение QUERY_STRING на страницу /store/products/cat1.html
- R=301 — означает Permanent redirect — URL перемещен на постоянной основе