阻止.htaccess中的IP无法正常工作

时间:2014-04-09 19:46:00

标签: apache .htaccess mod-authz-host

我尝试在.htaccess中配置一个简单的IP地址块。 我按照我在这个论坛中找到的例子,这似乎对其他用户很好,但不适合我,我真的不明白为什么。

我的.htaccess文件非常简单:

Order Allow,Deny
Allow from all
Deny from aaa.bbb.ccc.ddd

我希望配置的IP地址(aaa.bbb.ccc.ddd)将被阻止。但不幸的是它没有被封锁。

如果我设置“拒绝所有人”。在我的.htaccess的第三行,所有访问都按预期被阻止。

所以似乎这个指令是由Apache读取的,但是如果我设置了其他任何东西,而不是来自所有'一世。即主机名或IP或IP通配符等。不会发生阻塞。

我感谢任何帮助,指出了我正确的方向。

由于 内斯特

5 个答案:

答案 0 :(得分:1)

可能是红鲱鱼,但我认为你的.htaccess区块附近有标签?例如

<Limit GET POST>
  order allow,deny
  allow from all
  deny from 100.101.102.103
</Limit>

这是我在我的一个网站上使用它的方式。

答案 1 :(得分:0)

您确定您所包含的IP地址是Apache看到的IP地址吗?如果服务器位于负载均衡器后面,它将看到负载均衡器地址。

要解决此问题,您需要检查X-Forwarded-For标头

        SetEnvIf X-Forwarded-For ^aaa\.bbb\.ccc\.ddd proxy_env
        Order allow,deny
        Satisfy Any
        deny from env=proxy_env

显然,您可以通过查看日志来查看正在查看的IP地址

答案 2 :(得分:0)

最近我遇到了类似的问题,这完全是关于IPv4和IPv6的。查看服务器的访问日志,并检查IP地址的记录方式。您实际上可能阻止IPv4地址,同时使用您的IPv6地址(未阻止)到达您的Web服务器。

如果您无法访问这些日志,请尝试阻止IPv6,就像尝试阻止IPv4一样。您可以在此处找到您的IPv6:http://whatismyv6.com/

Order Allow, Deny
Allow From All
Deny From [Your-IPv4]
Deny From [Your-IPv6]

答案 3 :(得分:0)

我遇到了同样的问题,然后发现.htaccess文件混合了换行符(CR和一些CRLF)。删除文件并使用正确的回车再次创建

答案 4 :(得分:0)

经过一番搜索后,我发现由于所有客户端都被首先允许,然后被拒绝,因此htaccess无法正常工作。我反向拒绝并允许.htaccess进入但是终于以这种方式解决了:

Order Allow,Deny
Deny from aaa.bbb.ccc.ddd

以下ip禁止403和其他允许浏览的内容。 (如果.htaccess位于当前目录中,则不需要 Directory 标签)

希望能有所帮助