Reputation: 382160
I have a few web applications available on my server on port 8080.
As some of my users can't reach port 8080 due to their firewall, I'd like to set a redirection on my apache server. Il would like the following URL
http://dev2.test.com/tomcat/somewebapp/restofthepath
to display what is accessible at
http://dev2.test.com:8080/somewebapp/restofthepath
Of course I don't want users typing the first address to see the second one.
I added the following .htaccess
file in /var/www
:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(tomcat)
RewriteRule ^/tomcat/(.*)$ http://dev2.test.com:8080/$1 [P,QSA,L]
But I get this error in /var/log/apache2/error.log
:
[Tue Oct 09 15:23:06 2012] [error] File does not exist: proxy:http://dev2.test.com:8080/tomcat/
Could you please tell me what I should do ?
Upvotes: 4
Views: 3143
Reputation: 43168
You should probably be using mod_proxy
instead of mod_rewrite
.
ProxyPass /tomcat http://dev2.test.com:8000/
ProxyPassReverse /tomcat http://dev2.test.com:8000/
EDIT :
This configuration must be in httpd.conf. It may be in a VirtuaHost section or at the root of the file.
You have to enable mod_proxy. This could be done using
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
Upvotes: 8
Reputation: 4740
Doing what you did will only send a redirect to port 8080 to the user (which they can't use). You need to use apache mod_proxy or a different proxy server.
ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar
Upvotes: 2