2009-05-27 77 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來檢查給定的參數,並在那裏刪除它們。