2012-09-22 39 views
0

前几天我们的网站遭到了几个确定的referer网站的攻击。错误日志充满了每天大约1Gb的失败请求以及wordpress安装中的大量内部严重错误。htaccess rewrite_rule导致循环; WordPress的内部服务器错误

为了避免这种情况,我写了下面的htaccess重写规则来阻止来自特定查阅者的流量。 到目前为止,他们帮助,该网页提高了可用性。 但是,尽管错误日志现在充满: [Sat Sep 22 13:14:29 2012] [error] [client 188.32.141.123]由于可能的配置错误,请求超过了10个内部重定向的限制。如果需要,使用'LimitInternalRecursion'来增加限制。使用“LogLevel的调试”,以获得回溯,引用者:http://www.aztecmebel.ru/index.php?productID=1883&picture_id=3919 我想重写规则[F]通过发送引用者的失败页面,再次重写了获取引起环路... 不知道如何停止的部份?例如如果规则已经申请一次,不要再这样做了吗?我想,以避免日eerrorlog得到进一步填补......这unneccesary循环吃起来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] 

回答

0

我想重写规则[F]通过发送引用者的失败导致循环页面再次被重写...任何想法如何阻止这些?

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

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