ProxyHTML重写URL

And*_*rew 22 apache reverse-proxy apache2 mod-proxy-html

我已经设置了2个apache服务器.一个在端口80上,另一个在端口8077上.我想通过反向代理在8077上查看服务器上的所有内容.目前我有:

ProxyPreserveHost Off
ProxyHTMLInterp On
ProxyPass /translate/ http://www.example.com:8077/
ProxyPassReverse /translate/ http://www.example.com:8077/
ProxyHTMLURLMap / /translate/
Run Code Online (Sandbox Code Playgroud)

这允许我到达网站的初始页面,但图像,CSS和其他页面的链接不起作用.

例如,html中的css显示为

/css/style.css
Run Code Online (Sandbox Code Playgroud)

我真正希望它在哪里

/translate/css/style.css
Run Code Online (Sandbox Code Playgroud)

它从8077服务器获取文件.如何使用当前设置才能使其正常工作?

And*_*rew 34

好的,这就是我最终做的工作

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>
Run Code Online (Sandbox Code Playgroud)

这似乎运作良好.ProxyHTMLURLMap http://www.example.com:8077/translate/line只需要翻译一些基于"引用者"的网址,导致某些网页最终试图直接从8077端口服务器提供服务.