2009-05-27 2 views
0

У меня довольно сложный RewriteRule, где мне нужно проверить, имеются ли в QueryString определенные параметры, а затем перенаправить на тот же URL-адрес, но с этими параметрами.Сбрасывать специфические параметры при перенаправлении с помощью Mod-Rewrite

Как удалить некоторые параметры и сохранить остальные?

RewriteCond %{QUERY_STRING} color=red 
RewriteCond %{QUERY_STRING} status=contiue 
RewriteRule ^(.*)$ /$1? [R=301,L] 

URL, как:

"http://example.com/site.php?setup=done&color=red&weight=100&status=continue" 

(параметры заказа и количество не предсказуем/зашиты)

ответ

0

Попробуйте эти правила:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)(color=red|status=continue)($|&)(.*) 
RewriteRule .* $0?%1%5 [N,E=REMOVED:true] 
RewriteCond %{ENV:REMOVED} true 
RewriteRule^%{REQUEST_URI} [L,R=301] 

Другим способом было бы использовать PHP, чтобы проверить, какие параметры указаны и удалить их там.