如何在htaccess中阻止某些服务器

时间:2015-01-27 19:45:02

标签: apache .htaccess

我知道拒绝从.htaccess中的IP地址访问的方法是:

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

要拒绝来自.htaccess中的用户代理的访问,我可以这样做:

BrowserMatchNoCase baiduspider banned
Deny from env=banned
BrowserMatchNoCase WordPress bad_bot
Order Deny,Allow
Deny from env=bad_bot

但是我应该如何拒绝这样的事情,这是access_log中的报告?

p4fe41437.dip0.t-ipconnect.de - - [27/Jan/2015:01:42:58 -0500] "GET / HTTP/1.1" 200 - "-" "Mozilla/5.0 Windows NT 6.1 WOW64 rv 16.0 Gecko/20100101 Firefox/16.0"

是否还有一种拒绝使用通配符的方法,即*.t-ipconnect.de

感谢。

1 个答案:

答案 0 :(得分:1)

请参阅Allow/Deny (authz)的apache文档。

  

允许访问此字符串名称匹配或结尾的主机。只匹配完整的组件,因此上面的示例将与foo.apache.org匹配,但它与fooapache.org不匹配。无论HostnameLookups指令的设置如何,此配置都将导致Apache在客户端IP地址上执行双反向DNS查找。它将对IP地址执行反向DNS查找以查找关联的主机名,然后对主机名执行正向查找以确保它与原始IP地址匹配。 仅当正向和反向DNS一致且主机名匹配才允许访问

所以你可以做部分主机名:

Deny from t-ipconnect.de

但是,请记住,这是使用完成的。所以这意味着远程IP地址必须首先具有反向查找,解析为&#34; something.t-ipconnect.de&#34;然后该主机必须具有与原始IP地址匹配的正向查找。如果情况并非如此,那么您就无法阻止这种情况。