强制tomcat使用www.domain.com而不是domain.com

Ben*_*man 2 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:8080改写为www.domain.com:8080而无需将新的.htaccess文件放入每个webapp目录,但如果没有,我在上面做错了什么?

我已经在谷歌搜索了其他只有tomcat这个问题的人无济于事.

为了记录,我的.htaccess文件是:

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]
Run Code Online (Sandbox Code Playgroud)

干杯,本.

Chr*_*ltz 6

Tomcat对.htaccess文件没有任何作用:这是一个Apache httpd的东西.

你有几个选择,在这里:

  1. 编写一个过滤器,用于检查用于访问您的webapp的主机名,如果没有必要的"www",则重定向.字首.
  2. 将两个<Host>放入conf/server.xml文件中:一个主机名为"blah.com",另一个主机名为"www.blah.com",其中"blah.com"为默认值.然后,将您的webapp仅部署到"www.blah.com",并将一个简单的webapp部署到"blah.com",将所有内容重定向到所需的主机名.如果有帮助,你可以使用http://www.tuckey.org/urlrewrite/为你做真正的工作.