我的 Web 根目录中/home/www/
有一个.htaccess
用于禁止 IP 地址的文件:
order allow,deny
deny from 1.2.3.4
deny from 2.3.4.5
allow from all
ErrorDocument 500 /errors/500.htm
ErrorDocument 403 /errors/403.htm
我也尝试过这种方法,但出现了以下错误:
ErrorDocument 500 /home/www/errors/500.htm
ErrorDocument 403 /home/www/errors/403.htm
我创建了一个错误目录,/home/www/errors
其中包含以下文件:
403.htm
500.htm
.htaccess
在错误目录中.htaccess
我设置了规则:
order deny,allow
allow from all
如果我将我的 IP 放在根 .htaccess 文件中,我将无法浏览该网站。我收到一条错误:
禁止 - 您无权访问此服务器上的 /。
此外,尝试使用 ErrorDocument 处理请求时遇到 403 Forbidden 错误。
但是,如果我浏览 /errors/500.htm,我可以在浏览器中看到该页面,所以我知道子目录.htaccess
似乎允许加载这些文件。
我做错了什么?如何拒绝某个 IP 地址但仍使用 Apache2 显示自定义错误页面?
答案1
将来自被阻止 IP 的用户重定向到错误页面会更容易:
RewriteCond %{REMOTE_ADDR} 1.2.3.4
RewriteRule .* /CustomError.html [R=403]