阻止& sa = U& ei = .htaccess中的请求?

时间:2014-04-16 07:06:08

标签: .htaccess mod-rewrite

我的网站收到了很多这样的请求:

http://site/folder/url.html&sa=U&ei=c9hNU7aVDOy(and more gibberish)

我已将此添加到我的.htaccess:

RewriteRule ^(.*)&sa=U /$1 [L,NC,R=301]

但它不起作用:该网站仍然分发404页。 (我已经刷新了缓存)。

帮助?非常感谢!

2 个答案:

答案 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]