Apache mod_rewrite
提供了基於正規表示式規則動態修改傳入的請求的 URL 的方法。這用於以自己喜歡的任意方法對映任意 URL 到你的內部 URL 結構。
它支援無限的規則,以及為每個規則附加條件,從而提供了一個真正靈活且強大的 URL 操作機制。URL 操作可以依賴於各種測試,例如伺服器變數,環境變數,HTTP 頭,時戳,甚至外部資料庫查詢等,以便完成 URL 單元匹配。
這個模組在伺服器上下文 (httpd.conf
),虛擬主機上下文 (<VirtualHost>
指令塊),目錄上下文 (.htaccess
檔案和 <Directory>
指令塊) 對完整的 URL (包含目錄資訊部分和查詢字串部分) 操作。重寫結果可以導致新的規則處理,內部的後續處理,外部請求重定向,甚至透過內部代理, 這取決於你為規則附加的標誌。
既然 mod_rewrite
這麼強大,它當然是相當複雜。這篇文件作為參考手冊的補充,試圖減輕一些複雜性, 提供你可能使用 mod_rewrite
的常見場景的有充分注釋的例子。但是,也要告訴你,在什麼時候不應當使用 mod_rewrite
, 可以使用其它標準的 Apache 特性來達到目的,以避免無謂的複雜性。