开发者

Automatically add the "www" subdomain for my webapp

How can I set Tomcat to automatic开发者_开发百科ally redirect to "www"? I want that if a user enters my domain like:

mydomain.com

he will be redirected to: www.mydomain.com


The tuckey url rewrite filter can be used like this to do the proper redirection:

<rule>
  <name>Canonical Hostnames</name>
  <condition name="host" operator="notequal">^www.mydomain.com</condition>
  <condition name="host" operator="notequal">^$</condition>
  <from>^/(.*)</from>
  <to type="redirect" last="true">http://www.mydomain.com/$1</to>
</rule>


If you are using Apache, simple do (on htaccess):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^yourdomain.com
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301]

This way you make sure anything that is not using www starts using

UPDATE As you mentioned you don't have apache, I remembered I used this about a year ago. It does pretty much the same as mod_rewrite, and is fully supported by Tomcat. I used it with resin though, but I know it works the same way.

Greatest thing about it, is that it also runs on "mod_rewrite style", as you can see here. The only reason why I didn't continue using it, is because it will end up doing it at a server level, as opposed to a webserver level. Meaning it will call the JVM to interpret the redirect.

It works the same way though, and as mentioned before, can sue exactly the same thing you'd use on Apache.


wwwizer.com offers free naked domain redirect http://wwwizer.com/naked-domain-redirect

Point your naked domain like mysite.com to their IP, and they'll do a 301 redirect to www.mysite.com

Using a 301 redirect is the recommended way for SEO optimization.


Using Tuckey UrlRewriteFilter, you can also use the following rule:

<rule>
    <condition type="header" name="host" operator="equal">^[^.]+[.][^.]+$</condition>
    <from>^/.*</from>
    <to qsappend="true" type="redirect" last="true">${replaceFirst:%{request-url}://://www.}</to>
</rule>

This one is quite interesting, since nothing is hardcoded: it works for any domain and keeps port number and protocol.

Functions seem to be implemented since v3.1.


There is a known issue with the qsappend attribute: https://code.google.com/p/urlrewritefilter/issues/detail?id=116. You need to implement the fix specified on the link.

Simply create the package org.tuckey.web.filters.urlrewrite in your webapp, create the class NormalRule in it, and copy/paste the content of the following class: http://urlrewritefilter.googlecode.com/svn/trunk/src/main/java/org/tuckey/web/filters/urlrewrite/NormalRule.java.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜