2009-05-27 10 views
0

J'ai un RewriteRule assez complexe où je dois vérifier si certains paramètres sont présents dans QueryString puis rediriger vers la même URL, mais avec ces paramètres dénudés.Strip parameteters spécifiques avec Mod lorsqu'ils redirigent-Rewrite

Comment puis-je supprimer certains paramètres et préserver le reste?

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

url est comme:

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

(paramètres ordre et la quantité ne sont pas prévisibles/hardcoded)

Répondre

0

Essayez ces règles:

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] 

Une autre façon serait d'utiliser PHP pour vérifier quels paramètres sont donnés et les supprimer là.