Когда вы помещаете директивы конфигурации в файл .htaccess, и вы не получаете желаемого эффекта, есть ряд вещей, которые могут пойти не так.
Чаще всего проблема в том, что директива AllowOverride в файле httpd.conf не установлена так, что ваши директивы конфигурации выполняются. Убедитесь, что у вас нет действующего значения AllowOverride None для рассматриваемой области файла. Хороший тест для этого - поместить мусор в ваш файл .htaccess и перезагрузить страницу. Если ошибка сервера не генерируется, то почти наверняка действует AllowOverride None.
Если, с другой стороны, вы получаете ошибки сервера при попытке доступа к документам, проверьте журнал ошибок httpd. Вероятно, он скажет вам, что директива, используемая в вашем файле .htaccess, не разрешена.
[Пт. 17 сентября 18:43:16 2010] [оповещение] [клиент 192.168.200.51]
/var/www/html/.htaccess: DirectoryIndex здесь не разрешен
Это будет означать, что вы использовали директиву, которая никогда не разрешена в файлах .htaccess, или что у вас просто не установлен AllowOverride на уровне, достаточном для используемой вами директивы. Обратитесь к документации для этой конкретной директивы, чтобы определить, в чем дело.
С другой стороны, он может сказать, что у вас возникла синтаксическая ошибка при использовании самой директивы.
[сб. Авг 09 16:22:34 2008] [alert] [client 192.168.200.51]
/var/www/html/.htaccess: RewriteCond: разделители неверных флагов
В этом случае сообщение об ошибке должно соответствовать конкретной синтаксической ошибке, которую вы совершили.
Вы должны иметь AllowOverride, установленный на 'All' или 'FileInfo' в файле httpd.conf, чтобы иметь разрешения для директив mod_rewrite в файле .htaccess.
http://httpd.apache.org/docs/2.2/howto/htaccess.html