2009-12-15 112 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?它告诉规则在查询字符串处结束重写