允许父 .htaccess 重定向所有资产

允许父 .htaccess 重定向所有资产

我们正在从一个子域迁移到另一个子域。此特定域包含多个网站子集。我已设置以下重写来全局处理重定向:

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不存在一样。

我这里遗漏了什么?:)

答案1

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

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

相关内容