2002-08-28 18:17:47 UTC
В самом начале знакомства с mod_rewrite для Apache многие делают пару распространённых ошибок, которые приводят к тому, что в .htaccess
не работают директивы управляющие манипуляциями с URL при помощи mod_rewrite. Этих ошибок можно избежать, конечно, и при первом знакомстве с этим модулем, если внимательно прочитать документацию к Apache. Однако, редко кто (в том числе и я сам) читает внимательно документацию при первом знакомстве, с чем-либо.
Итак, первая ошибка, которая встречается — это установка директивы AllowOverride
в httpd.conf
для каталога хоста (виртуального хоста) не позволяющая использовать в .htaccess
директивы для mod_rewrite. Например, может стоять AllowOverride None
. Для использования mod_rewrite необходимо, по крайней мере, наличие флага FileInfo — AllowOverride FileInfo
или если вы разрешаете переопределять все опции для каталога то AllowOverride All
.
Пример:
<Directory "path/to/something"> AllowOverride FileInfo ... ... </Directory>
или
<Directory "path/to/something"> AllowOverride All ... </Directory>
Здесь в первом случае после флага FileInfo
могут идти и другие флаги, после All не надо писать ничего другого.
И вторая простейшая ошибка — это отсутствие директивы RewriteEngine on
перед директивами для mod_rewrite.