本文描述了如何使用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認證和授權