Apache URL重寫


Apache mod_rewrite 提供了基於正規表示式規則動態修改傳入的請求的 URL 的方法。這用於以自己喜歡的任意方法對映任意 URL 到你的內部 URL 結構。

它支援無限的規則,以及為每個規則附加條件,從而提供了一個真正靈活且強大的 URL 操作機制。URL 操作可以依賴於各種測試,例如伺服器變數,環境變數,HTTP 頭,時戳,甚至外部資料庫查詢等,以便完成 URL 單元匹配。

這個模組在伺服器上下文 (httpd.conf),虛擬主機上下文 (<VirtualHost> 指令塊),目錄上下文 (.htaccess 檔案和 <Directory> 指令塊) 對完整的 URL (包含目錄資訊部分和查詢字串部分) 操作。重寫結果可以導致新的規則處理,內部的後續處理,外部請求重定向,甚至透過內部代理, 這取決於你為規則附加的標誌。

既然 mod_rewrite 這麼強大,它當然是相當複雜。這篇文件作為參考手冊的補充,試圖減輕一些複雜性, 提供你可能使用 mod_rewrite 的常見場景的有充分注釋的例子。但是,也要告訴你,在什麼時候不應當使用 mod_rewrite, 可以使用其它標準的 Apache 特性來達到目的,以避免無謂的複雜性。