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