.htaccess 重定向到其他資料夾是否會啟動其中的第二個 .htaccess?

.htaccess 重定向到其他資料夾是否會啟動其中的第二個 .htaccess?

在我的 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 重定向。

相關內容