我尝试在.htaccess中配置一个简单的IP地址块。 我按照我在这个论坛中找到的例子,这似乎对其他用户很好,但不适合我,我真的不明白为什么。
我的.htaccess文件非常简单:
Order Allow,Deny
Allow from all
Deny from aaa.bbb.ccc.ddd
我希望配置的IP地址(aaa.bbb.ccc.ddd)将被阻止。但不幸的是它没有被封锁。
如果我设置“拒绝所有人”。在我的.htaccess的第三行,所有访问都按预期被阻止。
所以似乎这个指令是由Apache读取的,但是如果我设置了其他任何东西,而不是来自所有'一世。即主机名或IP或IP通配符等。不会发生阻塞。
我感谢任何帮助,指出了我正确的方向。
由于 内斯特
答案 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 标签)
希望能有所帮助