tomcat預設情況下不帶www的功能變數名稱是不會跳轉到帶www的功能變數名稱的,而且也無法像apache那樣通過配置.htaccess來實現。如果想要把不帶“www'的功能變數名稱重定向到帶”www"功能變數名稱下,又不想寫代碼,可以使用UrlRewriteFilter來實現。 一、前期準備 1.安裝JDK 2.安裝tomca ...
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://central.maven.org/maven2/org/tuckey/urlrewritefilter/4.0.3/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>