Apache HTTP サーバ バージョン 2.5

このドキュメントは mod_rewrite
リファレンスドキュメントを補足するものです。
RewriteRule の [P] フラグを使用して他のサーバにコンテンツをプロキシする方法を
説明します。一般的なシナリオを説明するレシピがいくつか提供されています。
mod_rewrite は [P] フラグを提供しており、URL を
mod_proxy 経由で他のサーバに渡すことができます。ここでは
2 つの例を示します。1 つ目の例では、URL を直接別のサーバに渡し、
ローカル URL であるかのように提供します。もう 1 つの例では、
見つからないコンテンツをバックエンドサーバにプロキシします。
単純に URL を別のサーバにマッピングするには、次のように [P] フラグを使用します:
RewriteEngine on RewriteBase "/products/" RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P] ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
2 つ目の例では、リソースがローカルに見つからない場合にのみ リクエストをプロキシします。これは、あるサーバから別のサーバに 移行中で、すべてのコンテンツが移行済みかどうかわからない場合に 非常に便利です。
RewriteCond "%{REQUEST_FILENAME}" !-f
RewriteCond "%{REQUEST_FILENAME}" !-d
RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
ProxyPassReverse "/" "http://old.example.com/"
どちらの場合も、バックエンドから発行されるリダイレクトが
正しくクライアントに渡されるように ProxyPassReverse ディレクティブを
追加しています。
可能な限り mod_rewrite よりも ProxyPass や ProxyPassMatch の使用を検討してください。