Я использовал mod_rewrite (экономно) в нескольких каталогах раньше без проблем, поместив файл .htaccess для этого каталога, и теперь он работает там. Но когда я пытаюсь использовать его в своем каталоге верхнего уровня, ничего не происходит!?!?! Но этот файл .htaccess (верхнего уровня один) работает нормально в противном случае. У меня есть Redirect 301 и множество других вещей, но не включен mod_rewrite. Я использую Apache 2.0.63 с загруженными mod_rewrite и mod_proxy.
В качестве тестового примера я настроил следующие 4 файла (fileA, html, fileB.html, fileC.html, fileD.html) и поместил их в каталог / test. Каждый файл содержит соответствующие буквы (например, AAAA, BBBB), поэтому я могу их точно идентифицировать. В каталоге / test я создал файл .htaccess с
Redirect 301 /test/fileA.html http://www.xyz.com/test/fileB.html
RewriteEngine on
RewriteRule ^fileC\.html$ fileD.html
и все работает должным образом: вы можете видеть только fileB.html и fileD.html даже при запросе A или C.
Затем я скопировал эти файлы в корневой каталог html и добавил туда .htaccess:
Options +FollowSymLinks (this was already there)
Redirect 301 /fileA.html http://www.xyz.com/fileB.html
RewriteEngine on
RewriteRule ^fileC\.html$ fileD.html
В .htaccess других команд об этих файлах нет. Теперь вы можете видеть fileB.html и fileD.html, но также fileC.html, а не fileA.html !!! Таким образом, правило mod_rewrite НЕ РАБОТАЕТ, а Перенаправление работает.
Я напрасно искал в сети идеи для этого. Кто-нибудь знает, что я делаю не так?