htaccess rewrite_rule导致循环; wordpress内部服务器错误

时间:2012-09-22 20:36:23

标签: wordpress .htaccess loops rewrite internal

几天前,我们的网站遭到了几个已确定的推荐网站的攻击。每天大约1Gb失败的请求和wordpress安装中的大量内部sevrer错误填充错误日志。

为了避免这种情况,我编写了以下htaccess重写规则来阻止来自特定引用者的流量。 到目前为止他们帮助了,页面提高了它的可用性。 但仍然错误日志现在填充: [星期六9月22日13:14:29] [错误] [客户端188.32.141.123]由于可能的配置错误,请求超出了10个内部重定向的限制。如有必要,使用'LimitInternalRecursion'增加限制。使用“LogLevel debug”获取回溯。,referer:http://www.aztecmebel.ru/index.php?productID=1883&picture_id=3919 我假设重写规则[F]通过将引用程序发送到失败页面而导致循环,该页面再次被重写... 知道如何制止这个吗?例如如果规则已经应用一次,那么不要再这样做了吗?我想避免让eerrorlog进一步填满......并且不必要的循环会耗尽CPU ......

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

RewriteCond %{HTTP_REFERER} aztecmebel\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} www\.aztecmebel\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} thanglongflc\.edu\.vn [NC,OR]
RewriteCond %{HTTP_REFERER} www\.thanglongflc\.edu\.vn [NC,OR]
RewriteCond %{HTTP_REFERER} gornji-rahic\.net [NC,OR]
RewriteCond %{HTTP_REFERER} www\.gornji-rahic\.net [NC,OR]
RewriteCond %{HTTP_REFERER} ams\.co\.th [NC,OR]
RewriteCond %{HTTP_REFERER} www\.ams\.co\.th [NC,OR]
RewriteCond %{HTTP_REFERER} yuanzhixing\.com [NC,OR]
RewriteCond %{HTTP_REFERER} www\.yuanzhixing\.com [NC,OR]
RewriteCond %{HTTP_REFERER} forumdownload\.net [NC,OR]
RewriteCond %{HTTP_REFERER} www\.forumdownload\.net [NC,OR]
RewriteCond %{HTTP_REFERER} ybcz\.cn [NC,OR]
RewriteCond %{HTTP_REFERER} www\.ybcz\.cn
RewriteRule .* - [F]

1 个答案:

答案 0 :(得分:1)

  

我假设重写规则[F]通过将引用者发送到失败页面而导致循环,该页面再次被重写...任何想法如何停止?

可能是导致它的原因,特别是如果您有自定义错误文档。循环发生的原因是您将重定向状态检查为200,但F标志使状态为403。尝试更改第一个规则以匹配403:

RewriteCond %{ENV:REDIRECT_STATUS} 403
RewriteRule .* - [L]