Все что после
?
это GET параметры. В свою очередь Get не является частью урла и не попадает в
%{REQUEST_URI}
# 301 --- http://www.test.com/faq.html?faq=13&layout=bob => http://www.test2.com/faqs.html
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteCond %{QUERY_STRING} (^|&)faq\=13($|&)
RewriteCond %{QUERY_STRING} (^|&)layout\=bob($|&)
RewriteRule ^faq\.html$ http://www.test2.com/faqs.html? [L,R=301]
# 301 --- http://www.test3.com/faq.html?faq=13&layout=bob => bbq.html
RewriteCond %{QUERY_STRING} (^|&)faq\=13($|&)
RewriteCond %{QUERY_STRING} (^|&)layout\=bob($|&)
RewriteRule ^faq\.html$ /bbq.html? [L,R=301]
Обратите внимание что как выделить так и удалить гет параметр просто не получится
для его удаления просто укажите нулевой гет парметр поставив в конце урла знак вопроса ;)
НУ и да предупреждая ваш вопрос как же передать скобку из RewriteCond
Тут все еще проще она передается не $1 а %1
(^|&)layout\=bob($|&)
- можно упростить до
layout\=bob
в омем примере не играет значение последовательность этих параметров