Apache is a reverse-proxy to my app. A client requests http://cdn.example.com/foo/images/logo.png
:
GET /foo/images/logo.png HTTP/1.1
Host: cdn.example.com
I want Apache to modify the request so that the app on the other side of the reverse proxy receives it in the format http://foo.example.com/images/logo.png
:
GET /images/logo.png HTTP/1.1
Host: foo.example.com
Rewriting the URL is easy, but I haven't found a way to modify the Host header with a value extracted from the URL. Is this possible?
Best Answer
Yes, you can change headers based on URIs. It's ugly though -- This is the only way I know of to do it:
Use
SetEnvIF
to set an environment variable if the URI matches what you want to rewrite.Use mod_headers'
RequestHeader
directive to reset the appropriate Request Header (Host:
) if that environment variable is set.