2009-12-15 111 views
0

我有一些網頁被谷歌索引,例如:重寫規則忽視變量的URL

/product.html?affiliateid=142 

我想重寫規則301重定向到同一頁面上,如果有一個affiliateid=xxx

到目前爲止,我有這個:

RewriteCond %{QUERY_STRING} ^affiliateid=[0-9]+$ 
RewriteRule ^$ /test.html$ [L,R=301] 

但它不工作,我需要擺脫變量,並獲取頁面名稱莫名其妙。

回答

0

您需要指定您的替代網址空查詢有原請求的查詢不附加到新的URL:

RewriteCond %{QUERY_STRING} ^affiliateid=[0-9]+$ 
RewriteRule^%{REQUEST_URI}? [L,R=301] 

如果你想保留任何其他查詢參數,試試這個:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)affiliateid=[0-9]+(&+(.*))?$ 
RewriteRule^%{REQUEST_URI}?%1%4 [L,R=301] 
0

發現:

的RewriteCond%{QUERY_STRING}^AFFILIATEID =([0-9] +)$

RewriteRule ^(。*)$/$ 1? [L,NC,R = 301]

這是這個問號/ $ 1?它告訴規則在查詢字符串處結束重寫