При подключении mod_rewrite в файле .htaccess возникает ошибка:
500 (внутренняя ошибка сервера)
Возможная причина № 1 — не подключен модуль rewrite.
Для его включения нужно раскомментрировать строку в файле конфигурации Апача (httpd.conf):
LoadModule rewrite_module modules/mod_rewrite.so
Возможная причина № 2 — ошибка в коде .htaccess
Вариант решения — закомментировать все строки кода и построчно открывая комментарии, вылавливать ошибку.
Возможная причина №3 — не тот формат файла .htaccess
Файл должен быть сохранен в формате Unix. Это означает что перевод строки должен задаваться одним символом (0x0A), а не двумя (0x0D 0x0A), как в DOS или Windows.
Для сохранения файла .htaccess в формате Unix (4 варианта решения):
- воспользоваться специальным редактором
- можно использовать скрипт, который удаляет недопустимые символы
- использовать файл не Unix-формата, но при закачке на ftp установить опцию text mode (или ascii mode)
- взять уже существующий .htaccess и редактировать его
403 (доступ запрещен)
Возможная причина №1 — старая версия Апача.
Два решения проблемы:
- патчить модуль mod_rewrite
- поставить более свежую версию апача
Возможная причина №2 — ошибка в коде .htaccess
Проверить правильно ли подключен модуль. После строки RewriteEngine on должна идти запись Options +FollowSymlinks, а потом только указатель RewriteBase.
Например:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^counter.gif$ /stat/counter.php [L]