Tomcat默认情况下不带www的域名是不会跳转到带www的域名的,而且也无法像Apache那样通过配置.htaccess来实现。如果想要把不带“www'的域名重定向到带”www"域名下,又不想写代码,可以使用UrlRewriteFilter来实现。
一、前期准备
1.安装JDK yum install java-1.8.0-openjdk-devel
vim /etc/profile.d/jdk.sh export JAVA_HOME=/usr/java/latest # 首先定义JAVA_HOME的环境变量 export PATH=$JAVA_HOME/bin:$PATH # 然后追加
. /etc/profile.d/jdk.sh
2.安装tomcat yum install tomcat tomcat-admin-webapps.noarch tomcat-webapps.noarch tomcat-docs-webapp.noarch
二、urlRewriteFilter实现重定向
urlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如Tomcat,jboss,jetty,Resin,Orion等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页。
1.下载UrlRewriteFilter
UrlRewriteFilter的官方网站http://tuckey.org/urlrewrite/
jar包要放在应用的WEB-INF/lib目录中 yum install wget -y cd /usr/share/tomcat/webapps/ROOT/WEB-INF/lib/wget http://urlrewritefilter.googlecode.com/files/urlrewritefilter-4.0.3.jar
2.配置过滤规则
在应用的./WEB-INF/目录下创建一个名为urlrewrite.xml规则文件,名称千万不能出错!! vim ./WEB-INF/urlrewrite.xml <urlrewrite> <rule> <name>seo redirect</name> <condition name="host" operator="notequal">^www.example.com</condition> <condition name="host" operator="notequal">^localhost</condition> <from>^/.*</from> <to type="redirect" last="true">http://www.example.com/$1</to> </rule> </urlrewrite>
3.配置tomcat
在应用的`./WEB-INF/中的web.xml中添加 vim ./WEB-INF/web.xml <web-app> # 要在web-app中,在其它servlet mapping前加入 ...... <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> </web-app>