apache:绝对错误文档相对 /var/www/?

apache:绝对错误文档相对 /var/www/?

我的 apacheVirtualHost包含一个ErrorDocument指令:

<VirtualHost *:80>
  ServerName test
  DocumentRoot /var/www/html/test/
  ErrorDocument 404 /error/404.txt
</VirtualHost>

该文件/var/www/html/test/error/404.txt确实存在。

当尝试访问不存在的文件时,我收到来自 apache 的错误信息:

该服务器上未找到所请求的 URL /foo。

此外,尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。

错误日志包含:

[错误] 文件不存在:/var/www/html/test/foo [错误] 文件不存在:/var/www/error/404.txt

为什么 apache 将错误文档路径设为相对于/var/www(apache 用户的主目录)而不是相对于虚拟主机的路径DocumentRoot,因为在文档中描述

URL 可以以斜杠 (/) 开头,表示本地 Web 路径(相对于 DocumentRoot),...


CentOS 6.7 上的 Apache 2.2 会发生这种情况。

答案1

出现此错误的原因是默认配置:

Alias /error/ "/var/www/error/"

删除此行即可使其工作。

相关内容