Search code examples
apachemod-rewriteapache2mod-proxyproxypass

Is it possible to use "%{HTTP_HOST}" in ProxyPass?


I'm trying to implement a transparent proxy using apache2 and mod_proxy that for now - doesn't do anything. just forwards the traffic to the correct "host".

I don't want it to be host-dependant - but dynamic so it'll work for all hosts. I tried to do this:

RewriteEngine on
RewriteLogLevel 5
RewriteLog "/var/log/apache2/rewrite.log"
RewriteRule ^(.*)$ $1
ProxyPass / http://$1

I also tried several other approaches (none worked). Is there any way I can access the "host" from the header and use it in the ProxyPass directive?

In nginx I would use $host, $remote_addr, etc.. any way to replace that on apache?

What I need is to be able to access %{HTTP_HOST}, %{REQUEST_URI} and %{SERVER_PORT} inside the ProxyPass command.


Solution

  • Just answering my own question:

    I was missing 2 things:

    the configuration should be:

    RewriteEngine On
    RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [P]
    

    Not to forget to enable inherit in the virtual directory:

    RewriteEngine On
    RewriteOptions Inherit