Назад | Перейти на главную страницу

Нужна помощь в поиске того, что не так с моим .htaccess не читается

Я пытаюсь использовать mod_rewrite через файлы .htaccess, и у меня большая проблема, файлы .htaccess не читаются. Машина работает под управлением Debian 5.0 и использует стабильный пакет apache2.

Я выполнил инструкции с этой страницы: http://www.debian-administration.org/articles/136. Включил mod_rewrite вот так:

a2enmod rewrite

В моем файле /etc/apache2/apache2.conf я добавил следующее:

<Directory "/var/www">
  AllowOverride ALL
  Options FollowSymLinks
</Directory>

В корневом каталоге я создал файл .htaccess с таким содержимым:

RewriteEngine on
RewriteRule ^test$ foo.html

Я пробовал много предложений из ответов на похожие вопросы, но безрезультатно. При посещении foo.com/test я получаю сообщение об ошибке: страница 404 не найдена. Все файлы доступны для чтения всем. При прямом доступе к foo.html проблем нет. Я также попытался поместить мусор в другой .htaccess, чтобы увидеть, будет ли apache жаловаться на это, ничего не изменилось. Может я просто слишком устал!

Спасибо

Если вы не получаете ошибку 500 при доступе к каталогу с файлом .htaccess с мусором в нем, значит, Apache не читает ваш файл .htaccess.

У вас есть сайт, определенный в файле / etc / apache2 / sites-available / default (или другом файле, который используется для вашего виртуального хоста), который перезаписывает определение AllowOverride All для этого каталога?

У меня была проблема с моим сервером apache, который тоже не читал htaccess, и, как выяснилось, я не установил:

<Directory "YOUR_DIRECTORY">
  AllowOverride ALL
</Directory>

для моего каталога в httpd.conf. Но как только я это сделал и перезапустил apache с

apachetcl -k restart

htaccess работал нормально.

Проверьте файл ошибок /var/log/apache2/error.log, когда вы попытаетесь вызвать "тестовую" проверку, соответствует ли каталог правильному каталогу.