htaccess не работает
Вы создали в директории с сайтом файл .htaccess, но чтобы вы туда не писали, ни одна директива не работает. Почему?
Скорее всего здесь виновата опция AllowOverride в apache.
Куда же ее вставлять?
Заходим в конфигурационный файл Apache — httpd.conf. В FreeBSD он располагается здесь:
/usr/local/etc/apache/httpd.conf
В других системах расположение другое. Но в целом не так трудно его найти:)
Находим такой блок <Directory «путь до директории с вашим htaccess»>…</Directory>, если нет то создаем его:
<Directory «/usr/local/www/apache22/data/site.ru»>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Если есть, то добавляем либо меняем опцию AllowOverride:
AllowOverride All
/usr/local/www/apache22/data/site.ru — это абсолютный путь до вашей директории, где лежит файл .htaccess
AllowOverride All — здесь сказано что если существует файл .htaccess, то все (All) директивы прописанные в нем выполнять. Кстати если не хотите чтоб сервер читал файл .htaccess то замените «All» на «None».
Allow from all — доступ к папке имеют все.
После того как добавили блок с описанием вашей директории перезапускаем apache.
Теперь все директивы в файле .htaccess должны отрабатывать.