Мой апач 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.
Журнал ошибок содержит:
[ошибка] Файл не существует: / var / www / html / test / foo [ошибка] Файл не существует: /var/www/error/404.txt
Почему apache делает путь к документу с ошибкой относительно /var/www
(домашний каталог пользователя apache) вместо виртуального хоста DocumentRoot
, так как описано в документах?
URL-адреса могут начинаться с косой черты (/) для локальных веб-путей (относительно DocumentRoot), ...
Это происходит с Apache 2.2 на CentOS 6.7.
Причиной этой ошибки была конфигурация по умолчанию:
Alias /error/ "/var/www/error/"
Удаление этой строки заставило его работать.