В настоящее время у меня есть директива ErrorDocument, определенная в моем файле .htaccess:
ErrorDocument 404 /site/error.php
Теперь, если я перейду на несуществующую страницу, подобную этой, на моем сайте, она будет работать нормально:
http://mysite.com/p
Однако, если я попытаюсь перейти в несуществующий каталог, директива не сработает.
http://mysite.com/random/hello
пытается найти документ:
http://mysite.com/random/site/error.php
чего, конечно, не существует. Я поискал в Интернете, и все источники указывают, что второй приведенный выше пример должен перейти к правильному файлу (потому что ведущий / в директиве делает его относительным к корню веб-сайта), но, по-видимому, это не так.
Я работаю на Ubuntu, спасибо!
Файлы .htaccess оцениваются относительно запрошенного каталога. Это также верно для директив внутри <Directory >
блоки внутри вашей основной конфигурации.
Самым простым решением было бы переместить ErrorDocument
в вашу основную конфигурацию Apache вместо файла .htaccess.
Попробуйте отключить все модули. Пытаться apache2ctl configtest
. Разместите свой apache2.conf.