web-dev-qa-db-ja.com

URLを書き換えるためのProxyHTML

2つのApacheサーバーをセットアップしました。 1つはポート80に、もう1つはポート8077にあります。リバースプロキシ経由で8077のサーバー上のすべてを表示したいと考えています。現時点で私は持っています:

ProxyPreserveHost Off
ProxyHTMLInterp On
ProxyPass /translate/ http://www.example.com:8077/
ProxyPassReverse /translate/ http://www.example.com:8077/
ProxyHTMLURLMap / /translate/

これにより、サイトの最初のページにアクセスできますが、画像、CSS、およびその他のページへのリンクが機能しません。

たとえば、htmlのcssは次のように表示されます

/css/style.css

実際になりたい場所

/translate/css/style.css

8077サーバーからファイルを取得するため。現在の設定でそれを機能させるにはどうすればよいですか?

22
Andrew

わかりました、これは私がそれを機能させるためにやったことです

ProxyPass /translate/ http://www.example.com:8077/
ProxyPassReverse /translate/ http://www.example.com:8077/

ProxyHTMLURLMap http://www.example.com:8087 /translate/

<Location /translate/>
   ProxyPassReverse /
   SetOutputFilter  proxy-html
   ProxyHTMLURLMap http://www.example.com:8077 /translate/
   ProxyHTMLURLMap / /translate/
   ProxyHTMLURLMap  /translate/ /translate/
   RequestHeader    unset  Accept-Encoding
</Location>

これはうまくいくようです。 ProxyHTMLURLMap http://www.example.com:8077 /translate /行は、一部のページが8077ポートから直接提供しようとする原因となる「リファラー」ベースのURLを翻訳するためにのみ必要でしたサーバ。

35
Andrew