Apache 强制tomcat使用www.domain.com而不是domain.com
目前,我正在使用Apache的mod_rewrite将所有html请求重定向到http(s)://www.domain.com/blah,而不是http(s)://domain.com/blah 除了我在domain.com:8080上连接到tomcat之外,一切都正常。我所做的只是天真地将相同的.htaccess文件放入我的/opt/tomcat-7/webapps/ROOT目录,但它似乎不起作用 实际上,我希望我已经偏离了我在上面尝试的方向,有一种方法我可以随时将domain.com:8080重写为www.domain.com:8080,而不必将新的.htaccess文件放入每个webapp目录,但如果不是,我在上面做了什么错误 我已经在谷歌搜索了很多人,但都没有找到tomcat的问题 作为记录,我的.htaccess文件是:Apache 强制tomcat使用www.domain.com而不是domain.com,apache,tomcat,Apache,Tomcat,目前,我正在使用Apache的mod_rewrite将所有html请求重定向到http(s)://www.domain.com/blah,而不是http(s)://domain.com/blah 除了我在domain.com:8080上连接到tomcat之外,一切都正常。我所做的只是天真地将相同的.htaccess文件放入我的/opt/tomcat-7/webapps/ROOT目录,但它似乎不起作用 实际上,我希望我已经偏离了我在上面尝试的方向,有一种方法我可以随时将domain.com:808
RewriteEngine on
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
干杯,
Ben.Tomcat不处理.htaccess文件:这是ApacheHTTPD的事情 您有两个选择,如下所示:
我更喜欢christopher提出的第二种方法,因为它可以减轻主应用程序的负担 在tomcat中的webapps文件夹旁边创建一个新的webapps2文件夹,以重定向到主应用程序。 创建一个根应用程序,不需要index.jsp
webapps2
|
|--ROOT
|---WEB-INF
|
|-----lib
| |----urlrewritefilter-4.0.3.jar
|
|---web.xml
|---urlrewrite.xml
在server.xml中添加主机
<Host name="www.domain.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
...
</Host>
<Host name="domain.com" appBase="webapps2"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="ROOT"/>
</Host>
<urlrewrite>
<rule>
<name>seo redirect</name>
<condition name="host" operator="notequal">^www.domain.com</condition>
<condition name="host" operator="notequal">^localhost</condition>
<from>^/(.*)</from>
<to type="permanent-redirect" last="true">http://www.domain.com/$1</to>
</rule>
</urlrewrite>
1.23.45.67 www.domain.com
1.24.53.57 www.domain.com