为什么我的自定义错误文件与每个虚拟主机(apache)相关?

为什么我的自定义错误文件与每个虚拟主机(apache)相关?

首先,我的服务器配置是 openSUSE 11.4,我的 Web 服务器是 apache 2.2。

我想更改 Web 服务器的错误文件,但是我无法让 apache 理解错误文件与每个虚拟主机无关!

我编辑了 /etc/apache 中的 error.conf 并删除了所有关于本地化的废话(不关心这个)并添加:

ErrorDocument 404 /srv/www/errors/404.html

重新启动 apache,然后我尝试访问不存在的东西。

输出为:

未找到 请求的 URL /notadocument 未在此服务器上找到。此外,尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。

我检查错误日志并看到以下内容:

[Mon Aug 01 15:34:36 2011] [error] [client x.x.x.x] File does not exist: /home/andreas/www/notadocument
[Mon Aug 01 15:34:36 2011] [error] [client x.x.x.x] File does not exist: /home/andreas/www/srv

正如您所看到的,apache 尝试查找我的 vhost 的目录,而不是服务器的根目录!

我该如何解决?

答案1

从您上面所说的内容来看,我猜测您试图指向的是 apache 未提供的文件,而是仅可在本地访问的文件?

如果是这种情况,那么我可以为您提供部分答案。您可能想要做的是将类型指令添加到您的 vhosts 文件... 有关目录的更多信息。这应该允许 Apache 访问该位置。您甚至可能还想为目录设置别名。

就像我说的,这只是部分答案,因为这不是我以前尝试过的东西,但由于这里还没有其他答案......希望这能帮助你朝着正确的方向前进。

相关内容