apache - .htaccess Deny from <IP> 规则被忽略

标签 apache .htaccess ubuntu

Ubuntu 10.04.4 LTS
Apache 2.2.14
ISPConfig 3.0.4.2

我们的一个客户端有一个旧的 Web 服务器,该服务器不断地因可能欺骗其用户代理的恶意机器人/蜘蛛而崩溃。我已经尝试了几乎所有我能想到的 htaccess 配置来尝试阻止它们爬取站点,但无济于事。

此时,我正在尝试通过 .htaccess 阻止单个 IP,但似乎没有任何效果。

我在 vhost 配置文件中将 AllowOveride 设置为“全部”:
<Directory /var/www/<this_website>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

我启用了以下模组:
ls -x /etc/apache2/mods-enabled/
actions.conf     actions.load        alias.conf            alias.load       auth_basic.load   auth_digest.load
authn_file.load  authz_default.load  authz_groupfile.load  authz_host.load  authz_user.load   autoindex.conf
autoindex.load   cgi.load            dav_fs.conf           dav_fs.load      dav.load          deflate.conf
deflate.load     dir.conf            dir.load              env.load         expires.load      fcgid.conf
fcgid.load       include.load        mime.conf             mime.load        negotiation.conf  negotiation.load
php5.conf        php5.load           reqtimeout.conf       reqtimeout.load  rewrite.load      ruby.load
setenvif.conf    setenvif.load       ssl.conf              ssl.load         status.conf       status.load
suexec.load      suphp.conf          suphp.load

以及 webroot 中 .htaccess 文件的片段:
...
order allow,deny
Allow from all
Deny from 180.76.6.45
...

我已通过在阻止列表底部添加“全部拒绝”来验证正在读取 .htaccess 文件。使用浏览器访问主页后,我得到了预期的 Apache“禁止访问”页面。但是,在查看访问日志时,在编写 .htaccess 很久之后,我仍然看到以下内容......
180.76.6.45 - - [15/Oct/2014:19:22:24 +0000] "GET /legacy HTTP/1.1" 403 0 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"

列表中的所有其他 IP 也是如此。为什么我的“拒绝 IP”指令被忽略?

最佳答案

您的 IP block 正在工作 ;-)

Apache 访问日志报告页面访问成功和失败。失败不是错误。错误是指 Apache 无法成功执行指令、加载模块或某些此类错误。

“请求路径协议(protocol)”字符串 "GET /legacy HTTP/1.1" 后面的返回码, 是 403 - 这意味着“禁止”,换句话说,访问被拒绝。我不知道你的日志格式,所以我不能确定,但​​“403”之后的值可能是返回的字节数,它应该是零。

关于apache - .htaccess Deny from <IP> 规则被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26390665/

相关文章:

php - 水蛭怎么能做到这一点?

ubuntu 服务器 vs 桌面版

bash - 在ubuntu中通过命令行设置时间同步

ubuntu - 无法在 Ubuntu 18.04 中安装 Deno

apache - 如何配置 Apache 在同一个域中有两个 symfony 项目(不使用子域)?

java - 使用 `Replace()` 方法不会替换 Apache POI 中的文本

java - tomcat 离开 time_wait 连接

php - 如何创建类似于 Pastebin、Imgur、Youtube 等的 URL?

.htaccess - 使用 .htaccess 重定向机器人

php - .htaccess 异常在主目录上产生问题