ProxyPass for specific vhost with mod_rewrite
- by Steve Robbins
I have a web server that it set up to dynamically server different document roots for different domains
<VirtualHost *:80>
<IfModule mod_rewrite.c>
# Stage sites :: www.[document root].server.company.com => /home/www/[document root]
RewriteCond %{HTTP_HOST} ^www\.[^.]+\.server\.company\.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^www\.([^.]+)\.server\.company\.com(.*) /home/www/$1/$2 [L]
</IfModule>
</VirtualHost>
This makes it so that www.foo.server.company.com will serve the document root of server.company.com:/home/www/foo/
For one of these sites, I need to add a ProxyPass, but I only want it to be applied to that one site. I tried something like
<VirtualHost *:80>
<Directory /home/www/foo>
UseCanonicalName Off
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /services http://www-test.foo.com/services
ProxyPassReverse /services http://www-test.foo.com/services
</Directory>
</VirtualHost>
But then I get these errors
ProxyPreserveHost not allowed here
ProxyPass|ProxyPassMatch can not have a path when defined in a location.
How can I set up a ProxyPass for a single virtual host?