mod_rewrite [L] 標誌未如預期運作?

mod_rewrite [L] 標誌未如預期運作?

我認為 [L] 標誌表明“此規則應該是為此 http 請求處理的最後一個規則..”

但是,當我有兩條規則時,例如:

RewriteRule ^test$ php/test.php [L]
RewriteRule (.*) error.php

總是發生的事情是要求http://localhost/測試轉到error.php,不是正如我所料,到 test.php ,因為我把 [L] 放在那裡。如果您在那裡註解掉第二條規則,則請求http://localhost/測試按預期轉到 test.php。

我真正想做的是用 mod_rewrite 捕獲 404 錯誤。我想做的事情可能完全是錯的。但我仍然想知道為什麼包羅萬象的規則是活躍的我做到了在規則後面加上 [L] ^test

我看到一個很大的清單這裡伺服器管理員列出了一堆以識別的目錄開頭的路徑,但我想透過簡單地使用一個很好的包羅萬象的規則來避免這樣做。

答案1

如果規則導致客戶端重定向,那麼當客戶端發出重定向請求時,它將再次從頂部重新進入規則清單。

相關內容