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