How to prevent mod_proxy from rewriting redirects into absolute URLs?
- by Yang
I have: nginx (port 80) reverse-proxying to apache2 (port 88) reverse-proxying to a web app (port 5001).
However, when the web app responds with a redirect like Location: /foo, apache2 rewrites this into Location: http://host.com:88/sub/foo, even though port 88 is publicly inaccessible. I'd like it to just redirect to the relative URL Location: /sub/foo.
Any ideas?
My apache config (using mod_proxy_http, mod_proxy_html, mod_substitute):
<Location /notes/>
Allow from all
ProxyPass http://127.0.0.1:5001/
SetOutputFilter proxy-html
ProxyPassReverse /
ProxyHTMLURLMap / /notes/
RequestHeader unset Accept-Encoding
AddOutputFilterByType SUBSTITUTE application/atom+xml
Substitute "s|127.0.0.1:5001|host.com/notes|"
</Location>