apache:绝对的ErrorDocument相对/ var / www /?

我的apache VirtualHost包含一个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错误。

错误日志包含:

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

为什么apache的错误文档path相对于/var/www (apache用户的家目录),而不是相对于虚拟主机的DocumentRoot ,如文档中所述 ?

URL可以以斜杠(/)开始,用于本地Webpath(相对于DocumentRoot),…


在CentOS 6.7上,Apache 2.2发生这种情况。

这个错误的原因是默认configuration:

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

删除这条线使它工作。