我的网站收到了很多这样的请求:
http://site/folder/url.html&sa=U&ei=c9hNU7aVDOy(and more gibberish)
我已将此添加到我的.htaccess:
RewriteRule ^(.*)&sa=U /$1 [L,NC,R=301]
但它不起作用:该网站仍然分发404页。 (我已经刷新了缓存)。
帮助?非常感谢!
答案 0 :(得分:1)
通常,使用QUERY_STRING
来匹配查询字符串参数是公平的
但由于您没有领先?
,因此不会将其视为查询字符串。
你的规则似乎是正确的 无论如何,看起来它没有按预期工作。
您可以尝试以下替代方法,即
RewriteRule ^(.*)&sa=U.*$ /$1 [L,NC,R=301]
编辑:你的规则按照你想要的方式工作,你只需要使你的模式更具体
RewriteRule ^([^&]*)&sa=U /$1 [L,NC,R=301]
答案 1 :(得分:0)
如果要根据查询字符串(= GET参数)创建规则,则必须使用RewriteCond,不能通过RewriteRule访问它们。所以:
RewriteCond %{QUERY_STRING} sa=U [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]