How do I redirect http://www.example.com to http://example.com in Tomcat? All the documentation focuses on Apache, but I'm hosting a Java app.
This should be something in the lines of
# .htaccess file contents
# Apache has the same docroot as the Java web app.
# Java webapp is running on port 8084
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# For sites running on a port other than 80
RewriteCond %{HTTP_HOST} !^domain\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/(.*) http://domain.com:%{SERVER_PORT}/$1 [L,R]
# And for a site running on port 80
RewriteCond %{HTTP_HOST} !^domain\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://domain.com/$1 [L,R]
</IfModule>
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
You can use UrlRewriteFilter in Tomcat. A rule like this should work for you in /WEB-INF/urlrewrite.xml:
<rule enabled="true">
<name>Force HTTPS example</name>
<note>Automatically redirects user requests.</note>
<from>http://domain.com/(.*)$</from>
<to type="permanent-redirect" last="true">http://www.domain.com/</to>
</rule>
Not sure if I made typo's, wrote this on top of head
In Tomcat8 - you have this option http://tomcat.apache.org/tomcat-8.0-doc/rewrite.html
If your site is a single webapp - add this to ROOT.xml
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve"/>
Then put rewrite.config
in your WEB-INF of your webapp
Which would look like this:
RewriteCond %{SERVER_NAME} ! ^www.example.com$ [NC]
RewriteRule ^/(.*) http://example.com/$1 [R=301,L]
This can also be applied at the Host level too so it can work across multiple webapps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With