本文描述了如何使用RewriteRule
的[P]
標誌將內容代理到另一台伺服器。提供了許多描述常見場景的組態。
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/"