共计 1662 个字符,预计需要花费 5 分钟才能阅读完成。
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>