I want to run a Tomcat application through a regular website URL, such as www.xyz.com
. I would like the root of this domain to act as the base directory for the web application, so each request to www.xyz.com/a/b/c
becomes www.abc.com:8080/myApp/a/b/c
. Ideally, I would be able to do this transparently and only for certain webapps.
www.abc.com:8080
should still respond to requests.
What do I need to do to make this happen?
Read more about mod_proxy
You can use mod_rewrite in Apache to do this. Load mod_rewrite in your Apache and in your www.xyz.com vhost add the following rule:
RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1
This should do the magic.
More info about mod_rewrite here.
EDIT: In order to keep the site name in the browsers, use mod_proxy as well by just appending a [P] at the end of the RewriteRule:
RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1 [P]
This will force Apache to act as a proxy for that URL instead of just rewriting the URL.
A simpler method for doing this is to just add a Virtual Host entry in your Apache conf file. Usually located in /etc/httpd/conf, add something like this at the end of the Virtual Host section:
Restart your Apache service and you are done.