Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Redirecting http://www.example.com to http://example.com

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.

like image 669
bluedevil2k Avatar asked Sep 17 '14 17:09

bluedevil2k


2 Answers

Apache

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

Tomcat

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

like image 106
Margus Avatar answered Nov 15 '22 04:11

Margus


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.

like image 42
Tim Funk Avatar answered Nov 15 '22 05:11

Tim Funk