.htaccess规则阻止合法流量

时间:2014-02-27 22:34:19

标签: apache .htaccess

问题:我网站的合法流量正在收到“403 Forbidden”错误。

示例:应允许来自用户代理199.16.156.125的{​​{1}}至GET /robots.txt HTTP/1.1的请求,但该请求将被拒绝。

疑似罪魁祸首:我的根.htaccess文件实现了PerishablePress的5G防火墙;来自各种WordPress安全插件的额外拒绝规则;我自己一起攻击的一些否定规则;以及一长串禁止的CIDR。

示例代码(截断):

Twitterbot/1.0

还有更多内容,但我怀疑问题可能出在上面的示例代码中。

我尝试了什么:1。编辑.htaccess规则以尝试解决问题。 2.创建403记录器脚本以提供有关接收403响应的请求的其他详细信息。 (假设是禁止的请求可能包含额外的X-Forwarded-For标头,其中包含来自被禁网络的IP地址;但是,事实证明这个假设是不正确的。)3。砰的一声反对桌面。

修改

如果普遍的共识是发布的代码段不能导致我所描述的问题,我会接受一个答案,帮助我通过更有效的故障排除来追踪问题的实际原因。

更新

我很感谢社区的意见和想法,我会提供更新。

最后,我联系了我的网站主机寻求帮助。经过一番来回,我了解到我的主人确实禁止Twitterbot从他们的网络中获取资源,显然是通过访问运行效果不佳的WordPress插件的网站。事实上,具体的结果实际上并不是.htaccess问题。

但是,我仍然有一个无法访问我的网站的客户端,而是获取403禁止消息:合法流量被拒绝,如上所述。我的主人确认他们阻止了我客户的IP地址。我还没有找到解决方案。我甚至在我的“拒绝”指令列表中的“允许”指令中列出了他的专用IP,但他仍被拒绝。我编辑了上面的代码示例来演示。

1 个答案:

答案 0 :(得分:0)

我意识到这是在不久前发布的,很有可能已经解决了

RewriteCond %{REQUEST_URI} !^(/wp-admin/admin-ajax\.php.*|/wp-cron\.php.*)
如果不是/wp-admin/admin-ajax.php或/wp-cron.php,

将被禁止 因此,/ robots.txt会失败,因为它属于!

代表的NOT的集水区