Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ProxyHTML to rewrite URL

Tags:

I've got 2 apache servers set up. One on port 80 and another on port 8077. I'm wanting to see everything on the server on 8077 via a reverse proxy. At the moment I've got:

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

This allows me to get to the initial page of the site, but the links to images, css and other pages don't work.

For example the css in the html shows as

/css/style.css 

where I actually want it to be

/translate/css/style.css 

For it to pick up the file from the 8077 server. What can I do with the current setting to get that to work?

like image 320
Andrew Avatar asked Jan 21 '13 00:01

Andrew


1 Answers

Ok, this is what I ended up doing to get it working

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> 

This seems to work well. The ProxyHTMLURLMap http://www.example.com:8077 /translate/ line was only needed to translate some "referrer" based urls that caused some pages to end up trying to serve directly from the 8077 port server.

like image 89
Andrew Avatar answered Sep 30 '22 06:09

Andrew