apache mod proxy to another domain with relative paths

We have an apache virtual host www.example.com now Im trying to get www.example.com/mypath to go to load the pages from

www.example1.com using mod_poxy i have it with a base

ProxyPass /mypath http://www.example1.com
ProxyPassReverse /mypath http://www.example1.com

however the link on www.example1.com are all <a href='/xxx/xx'>example link</a>

so when they come back to the www.example.com/mypath the are www.example.com/xxx/xx how can i get them to be www.example.com/mypath/xxx/xx

cheers


Solution 1:

This can be achieved by using mod_proxy_html which is capable of rewriting links. Generally this would not be a problem if your webpage would be using relative paths.

With the module installed you can use a configuration similar to this one

LoadModule proxy_module      modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule headers_module    modules/mod_headers.so
LoadFile   /usr/lib/libxml2.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule xml2enc_module modules/mod_xml2enc.so

# Disable Proxy Requests since this is not a forward proxy
ProxyRequests off


ProxyPass /mypath/ http://www.example1.com/
ProxyHTMLURLMap http://www.example1.com /mypath

<Location /mypath/>
        ProxyPassReverse /
        ProxyHTMLEnable On
        ProxyHTMLURLMap  /      /mypath/

        # You cannot rewrite gzip compressed streams
        RequestHeader    unset  Accept-Encoding
</Location>

You can read up more about mod_proxy_html here and here