2009-05-27 50 views
0

我有一个非常复杂的RewriteRule,我需要检查某些参数是否存在于QueryString中,然后重定向到相同的URL但剥离了这些参数。使用Mod-Rewrite重定向时去除特定的参数

如何删除一些参数并保留其余参数?

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

网址是这样的:

"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来检查给定的参数,并在那里删除它们。