urlRewriteFilter 是一个用于改写 URL 的 Web 过滤器,类似于 Apache 的 mod_rewrite。适用于任何Web应用服务器(如 Tomcat,jboss,jetty,Resin,Orion 等)。其典型应用就把动态 URL 静态化,便于搜索引擎爬虫抓取你的动态网页。
1.下载 UrlRewriteFilter<br><br>UrlRewriteFilter 的官方网站 <a href="http://tuckey.org/urlrewrite/" target="_blank" rel="nofollow">http://tuckey.org/urlrewrite/</a>
jar 包要放在应用的 WEB-INF/lib 目录中,或者添加 Maven 依赖项(添加如下):
<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>4.0.3</version>
</dependency>
2.配置 tomcat在应用的 /WEB-INF/web.xml 中添加(在其他servlet mapping前添加):
<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><br></web-app>
另外,如果集成了 struts2 框架,那么位置很重要:
fileter-mapping 这段需要在 struts-prepare 和 struts-execute 之间,而如果在放之前这中间已经有内容,可能需要放到已有内容最前面
3.配置过滤规则
在应用的 /WEB-INF/ 目录下创建一个名为 urlrewrite.xml 规则文件(对于 Maven 用户,为 src/main/webapp/WEB-INF/),文件名称千万不能出错!!
添加内容如下:
<urlrewrite>
<rule>
<name>seo redirect</name>
<condition name="host" operator="notequal">^www.didiok.com</condition>
<condition name="host" operator="notequal">^localhost</condition>
<from>^/(.*)</from>
<to type="permanent-redirect" last="true">http://www.didiok.com/$1</to>
</rule>
</urlrewrite>
重新启动后,您可以访问 http://127.0.0.1:8080/rewrite-status (或本地 Web 应用程序的任何地址)以查看输出。
参考文章:https://www.cnblogs.com/aubin/p/8511936.html<br>http://tuckey.org/urlrewrite/