允许父级.htaccessredirect所有资产

我们正在从一个子域迁移到另一个子域。 这个特定的域名有几个网站的子集。 我已经设置了以下重写来处理全局redirect:

docroot/.htaccess (“规则#1”)

 RewriteEngine On RewriteCond %{HTTP_HOST} ^virtual\.example\.com$ RewriteRule ^(.*)$ http://events.example.com/$1 [L,R=301] 

它通常工作,除了有几个网站有自己的重写规则。 例如, /roadshow/2015/具有以下全面规则:

docroot/roadshow/2015/.htaccess (“规则#2”)

 RewriteCond %{REQUEST_URI} ^(.*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\.php$ RewriteRule .* framework/main.php?url=%1&%{QUERY_STRING} [L] 

问题: /roadshow/2015/下的页面继续加载,就像规则1不存在一样。

我在这里错过了什么? 🙂

在子文件夹中的.htaccess文件中的mod_rewrite指令将胜过父文件夹中的文件 – 尝试在每个子文件夹的.htaccess文件中使用RewriteOptions Inherit (请参阅http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions )。

如果您正在运行Apache 2.4.8或更高版本,则可以使用RewriteOptions InheritDown自动应用于所有子级.htaccess文件,而不必修改每个.htaccess文件。