获取根目录本身时,Apache 2.0 ErrorDocument 指令不起作用

获取根目录本身时,Apache 2.0 ErrorDocument 指令不起作用

我负责一个使用 Red Hat 4.1.2 上的 Apache 2.0 的站点。

我已通过将以下行添加到网站根目录中的 .htaccess 文件来将网站配置为显示自定义错误页面:

ErrorDocument 403 /403.html

为了测试,我在网站应用程序中阻止了我自己的 IP 地址;这会导致 .htaccess 文件中出现类似这样的内容(为了简洁,我编辑了列表并修改了 IP):

SetEnvIfNoCase REMOTE_ADDR "^(0\.0\.0\.1|0\.0\.0\.2|0\.0\.0\.3).*" BadIP
deny from env=BadIP

当我尝试从“坏”IP 访问网站时,如果我尝试获取特定页面(例如,http://example.com/index.html)。

但是,如果我尝试仅获取根目录(例如http://example.com),那么我得到的是 Apache 测试页面。

有什么方法可以让站点的根目录与自定义错误页面配合使用?

编辑:我想我可能造成了一些混乱。澄清一下:

  • 当我尝试获取根 URL 时,根页面是不是服务;我得到的页面显示:“如果您可以阅读此页面,则意味着安装在该站点的 Apache HTTP 服务器正常运行。” 因此,我按预期被阻止了,但我只是没有收到 403 错误页面。
  • 当我尝试获取根目录下的任何内容时,我得到了自定义的 403.html 页面

更新

我在较新的 Apache 版本 (2.2.25) 上尝试过此操作。我也尝试过没有ErrorDocument 指令或 SetEnv 内容。.htaccess 文件包含仅有的这三行:

order allow,deny
allow from all
deny from 0.0.0.0

其中 0.0.0.0 被我的实际 IP 地址替换。

结果是一样的:当获取 example.com 时,我得到了 Apache 的“如果您可以读取此内容”测试页面,而当获取 example.com/x 时,我得到了内置的“禁止...您无权访问此服务器上的 /x”页面。

相关内容