在我的 apache 网站上,我有以下重定向:
RewriteCond %{REQUEST_URI} !^/web/
RewriteRule ^(.*)$ /web/$1
它从根目录重定向到“Web”目录。
这也会通过/web/
目录的 .htaccess 运行吗?
在我的 apache 网站上,我有以下重定向:
RewriteCond %{REQUEST_URI} !^/web/
RewriteRule ^(.*)$ /web/$1
它从根目录重定向到“Web”目录。
这也会通过/web/
目录的 .htaccess 运行吗?
是的,它确实。(假设
.htaccess
没有为子目录禁用覆盖。)事实上,如果
.htaccess
子目录中的文件包含 mod_rewrite 指令,那么您不需要该RewriteCond
指令,因为子目录中的 mod_rewrite 指令将覆盖父目录中的指令(默认情况下),从而防止重写循环。请注意,在您发布的指令中,您缺少一个
L
标志,因此处理将首先通过当前.htaccess
文件的其余部分继续。次要的一点,这严格来说是“重写”,而不是“重定向”。尽管 Apache 文档确实提到了“内部重定向”。“重定向”更常用于指代外部3xx 重定向。