RewriteCond %{ENV:HTTPS} on
RewriteRule .* - [E=SSL:s]
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http%{ENV:SSL}://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# 301 --- http://www.test3.com/faq.html?faq=13&layout=bob => bbq.html?id=333
RewriteCond %{QUERY_STRING} (^|&)faq\=13($|&)
RewriteCond %{QUERY_STRING} (^|&)layout\=bob($|&)
RewriteRule ^faq\.html$ /bbq.html\?id\=33333 [L,R=301]
# 301 --- text/faq.html?faq=20 => helpdesk/kb.php
RewriteCond %{QUERY_STRING} (^|&)faq\=20($|&)
RewriteRule ^text/faq\.html$ /helpdesk/kb.php? [L,R=301]
по сути показал как выделить гет запрос и передать его в реврайт конд.
В вашем же случае действительно маска
^(.*) /%2
будет цикл.Его нужно убрать вот и все
для этого есть два способа
1. это дать правилу пройтись один раз
Или сделать исключение урла который содержит гет запрос, да кстати его нужно еще удалить
А для удаление гет запроса нам понадобится
?
RewriteRule ^(.*) /%2? [L,R=301]
#вопрос в конце удалит гет параметр, и правило при следующем проходе уже не сработает поскольку условие наличие гет запроса не выполнится.