如何设置Tomcat自动重定向到“www”? 如果用户输入我的域名,我希望如此:
mydomain.com
他将被重定向到:www.mydomain.com
答案 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。