使用mod_rewrite進行代理

本文描述了如何使用RewriteRule[P]標誌將內容代理到另一臺伺服器。提供了許多描述常見場景的配置。

使用mod_rewrite代理內容

mod_rewrite提供[P]標誌,允許通過mod_proxy將URL傳遞到另一個伺服器。這裏給出了兩個例子。在一個示例中,URL直接傳遞到另一個伺服器,並且就像它是本地URL一樣。在另一個示例中,我們將缺少的內容代理到後端伺服器。

解決:
要簡單地將URL映射到另一個伺服器,我們使用[P]標誌,如下所示:

RewriteEngine  on
RewriteBase    "/products/"
RewriteRule    "^widget/(.*)$"  "http://product.example.com/widget/$1"  [P]
ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"

在第二個示例中,僅在無法在本地找到資源時,才會代理請求。當您從一臺伺服器遷移到另一臺伺服器,並且您不確定是否所有內容都已遷移時,這非常有用。

RewriteCond "%{REQUEST_FILENAME}"       !-f
RewriteCond "%{REQUEST_FILENAME}"       !-d
RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
ProxyPassReverse "/" "http://old.example.com/"

上一篇: Apache URL重寫 下一篇: Apache認證和授權