NASで実行されているパーソナルWebサーバーに次の仮想ホストがあります。mydomain.comと* .mydomain.comの両方をNASにリダイレクトするためのdynDNSセットアップがあります。
<VirtualHost *:80>
ServerName redir.example.com
ProxyPass /pbay/ http://www.anothersite.example.com/
ProxyPassReverse /pbay/ http://www.anothersite.example.com/
</VirtualHost>
redir.example.com/pbay/
にアクセスしようとすると、www.anothersite.example.com/
にリダイレクトされますが、アドレスバーには引き続きredir.example.com/pbay/
と表示されます。しかし、サーバー上で別のリクエストが発生するサイトで何かを行うと、アドレスバーが実際の(anothersite.example.com)アドレスに変わります。常にhttp://redir.example.com/
のみを表示したい。
これがProxyPassReverseの目的だと思いました。どうすればこれを達成できますか?
また、 mod_proxy_html を有効にする必要があります。 ProxyPassReverse
は、HTTPヘッダーのみを書き換えます。 HTMLのコンテンツ(絶対リンクなど)を書き換えるには、追加モジュールを有効にする必要があります。
ProxyPassReverseのドキュメント は、これをかなり明確に述べています。
このディレクティブにより、Apache httpdはHTTPリダイレクト応答の
Location
、Content-Location
およびURI
ヘッダーのURLを調整できます。これは、Apache httpdがリバースプロキシ(またはゲートウェイ)として使用され、リバースプロキシの背後に留まるバックエンドサーバーでのHTTPリダイレクトのためにリバースプロキシを迂回しないようにする場合に不可欠です。上記で具体的に説明したHTTP応答ヘッダーのみが書き換えられます。 Apache httpdは、他の応答ヘッダーを書き換えたり、デフォルトでHTMLページ内のURL参照を書き換えたりしません。これは、プロキシされたコンテンツに絶対URL参照が含まれている場合、プロキシをバイパスすることを意味します。プロキシに一致するようにHTMLコンテンツを書き換えるには、 mod_proxy_html をロードして有効にする必要があります。