Я использую mod_rewrite для сопоставления моей старой структуры каталогов с новой. У меня есть следующее правило в моем файле .htaccess верхнего уровня, и оно работает:
RewriteEngine On
RewriteCond %{REQUEST_URI} /blog/archives/(.*)
RewriteRule ^.*$ /archives/%1 [L,R=301]
Как вы можете догадаться, это займет http://example.com/blog/archives/00001.php
и перенаправит его на http://example.com/archives/00001.php
.
Но когда я добавляю эти правила перезаписи в файл .htaccess в каталоге / blog
RewriteEngine on
RewriteRule atom.xml$ /atom.xml [L,R=301]
перенаправление верхнего уровня больше не работает. Если переместить правило в файле / blog .htaccess в файл верхнего уровня, оба правила будут работать. Может кто-нибудь объяснить, что здесь происходит?