У меня есть доступ к машине Ubuntu с установленным apache, к которой я подключаюсь с помощью PuTTy.
По какой-то причине мой файл .htaccess не работает, вот и все, что он содержит:
ErrorDocument 404 /handler.php
Вместо перехода на страницу handler.php он распечатывает общую страницу Apache Not Found.
Я искал в Google и все, что я могу найти, это информация о том, что в вашей конфигурации apache для AccessFileName установлено значение .htaccess, а для AllowOverride установлено значение All.
Я внес изменения в свой файл конфигурации (/etc/apache2/apache2.conf), и теперь он содержит следующее:
AccessFileName .htaccess
<Directory />
AllowOverride All
#AllowOverride None
</Directory>
Я перезапустил apache (sudo /etc/init.d/apache2 restart
), но у меня все еще возникает та же проблема.
Извините, я не знаком с Linux и Apache Config.
grep -R AllowOverride /etc/apache2
: попробуйте увидеть, не накладывает ли какой-либо активный файл конфигурации (в conf.d или с поддержкой сайтов) некоторые ограничения на родительский каталог вашего веб-корневого каталога (для / это нормально, но если кто-то может наложить ограничение на / var / www / мой сайт). Вы можете проверить, что .htaccess читается, установив deny со всех сторон (вы должны получить отказ в доступе)
Apache не может найти ваш файл handler.php.
Этот файл должен находиться в самой папке DocumentRoot на VirtualHost (веб-сайте).
Определенно да, и он находится в том же каталоге, что и файл .htaccess
Это могло быть твоей проблемой. Путь в этой директиве всегда относится к папке DocumentRoot, а не к расположению файла .htaccess.
Проверить URL http://www.example.com/handler.php поскольку это URL-адрес, на который вы указываете Apache для перенаправления.
http://httpd.apache.org/docs/2.2/mod/core.html#errordocument