Apache-2.4

.htaccess 重定向到另一個文件夾是否會啟動其中的第二個 .htaccess?

  • December 13, 2020

在我的 apache 網站上,我有以下重定向:

RewriteCond %{REQUEST_URI} !^/web/
RewriteRule ^(.*)$ /web/$1

它從根目錄重定向到“Web”目錄。

這也會通過/web/目錄的 .htaccess 執行嗎?

是的,它確實。(假設.htaccess沒有為子目錄禁用覆蓋。)

RewriteCond %{REQUEST_URI} !^/web/
RewriteRule ^(.*)$ /web/$1

事實上,如果.htaccess子目錄中的文件包含 mod_rewrite 指令,那麼您就不需要該RewriteCond指令,因為子目錄中的 mod_rewrite 指令將覆蓋父目錄中的指令(預設情況下),從而防止重寫循環。

請注意,在您發布的指令中,您缺少一個L標誌,因此處理將首先通過目前.htaccess文件的其餘部分繼續。

次要的一點,這嚴格來說是“重寫”,而不是“重定向”。儘管 Apache 文件確實提到了“內部重定向”。“重定向”更常用於指代外部3xx 重定向。

引用自:https://serverfault.com/questions/1046025