2010-03-15 73 views
2

我正在使用mod_rewrite将旧的目录结构映射到新的目录结构。我在我的顶级.htaccess中的规则,它的工作原理:子目录'.htaccess中的mod_rewrite覆盖更高级别吗?

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文件

RewriteEngine on 
RewriteRule atom.xml$ /atom.xml [L,R=301] 

顶级重定向不再起作用。如果我将/ blog .htaccess文件中的规则移至顶级文件,这两个规则都可以使用。有人可以解释这里发生了什么吗?

回答

2

检查inheritRewriteOptions指令here的标志。

+0

谢谢,西蒙。在子目录的.htaccess文件中加入'RewriteOptions Inherit'修复了这个问题。 – Ryan 2010-03-15 17:27:02