自动为我的webapp添加“www”子域

时间:2010-03-21 21:35:57

标签: java tomcat web-applications url-rewriting

如何设置Tomcat自动重定向到“www”? 如果用户输入我的域名,我希望如此:

mydomain.com

他将被重定向到:www.mydomain.com

4 个答案:

答案 0 :(得分:6)

tuckey url rewrite filter可以像这样使用来进行正确的重定向:

<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>

答案 1 :(得分:5)

如果你正在使用Apache,那么简单(在htaccess上):

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

这样您可以确保任何未使用www的内容都开始使用

<强>更新 正如你所提到的,你没有apache,我记得大约一年前我使用过this。它与mod_rewrite几乎完全相同,并且完全受Tomcat支持。我用它和树脂一起使用,但我知道它的工作方式相同。

最重要的是,它也运行在“mod_rewrite风格”上,你可以看到here。我没有继续使用它的唯一原因是因为它最终会在服务器级别执行,而不是Web服务器级别。这意味着它将调用JVM来解释重定向。

它的工作方式相同,如前所述,它可以起诉你在Apache上使用的完全相同的东西。

答案 2 :(得分:1)

wwwizer.com提供免费的裸域重定向http://wwwizer.com/naked-domain-redirect

将您的裸域如mysite.com指向他们的IP,他们将301重定向到www.mysite.com

使用301重定向是SEO优化的推荐方法。

答案 3 :(得分:0)

使用Tuckey UrlRewriteFilter,您还可以使用以下规则:

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

这个非常有趣,因为没有任何硬编码:它适用于任何域并保留端口号和协议。

自v3.1起,函数似乎已实现。


qsappend属性存在一个已知问题:https://code.google.com/p/urlrewritefilter/issues/detail?id=116。您需要实现链接上指定的修复程序。

只需在您的网络应用中创建包org.tuckey.web.filters.urlrewrite,在其中创建课程NormalRule,然后复制/粘贴以下课程的内容:http://urlrewritefilter.googlecode.com/svn/trunk/src/main/java/org/tuckey/web/filters/urlrewrite/NormalRule.java