Раньше я без проблем использовал 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 нет. Теперь вы можете видеть файл B.html и файл D.html, а также файл C.html, а не файл A.html!!! Таким образом, правило mod_rewrite здесь НЕ РАБОТАЕТ, а перенаправление работает.
Я тщетно искал в сети идеи по этому поводу. Кто-нибудь знает, что я делаю неправильно?