Обрезать определенные параметры при перенаправлении с Mod-Rewrite - PullRequest
0 голосов
/ 27 мая 2009

У меня довольно сложный RewriteRule, где мне нужно проверить, присутствуют ли определенные параметры в QueryString, а затем перенаправить на тот же URL-адрес, но с этими параметрами.

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

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"

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

1 Ответ

0 голосов
/ 27 мая 2009

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

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, чтобы проверить, какие параметры заданы и удалить их там.

...