我的 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/"
删除此行即可使其工作。