hyytaojunming 发表于 2017-1-7 13:22:31

Apache URL Rewrite最简配置(二)

使用UrlRewriteFilter动态URL静态化
所用基于动态的url http://www.nihaoblog.com/content.jsp?id=1&contentid=404按照各大搜索引擎的喜好,应该美化成http://www.nihaoblog.com/content/1_404.html静态网页的方式,尽管目前的google及几大搜索引擎宣称支持动态页网的抓取,但与传统的html文件相比较抓取率仍不在一个数量级。Apche的mod_rewrite模块具有此功能,但是对于租用虚拟主机的用户来说就比较麻烦不太可能对所有运营商有更多的要求,需要条件依赖就不具通用性。

    目前有一个解决方法,通过UrlRewriteFilter可以完全实现动态URL表态化,你可以将它直接应用到你的web应用中,不管你用的是jsp+javabean还是struts.
   
下面是使用方法:

    1、下载http://tuckey.org/urlrewrite/#download目前版本是1.2,解压缩后将文件考到相应的web-inf/lib和web-inf下,。
    2、配置web.xml
<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>
</filter-mapping>
根据自己的需要,将相应目录下的url转给UrlRewriteFilter来处理。
   3、配置urlwrite规则文件WEB-INF/urlrewrite.xml

http://www.nihaoblog.com/content.jsp?id=1&contentid=404

静态化为:
http://www.nihaoblog.com/content/1_404.html

配置如下:

<rule>
    <from>/content/(+)_(+).html</from>
    <to>/content.jsp?id=$1&amp;contentid=$2</to>
</rule>

   
注意:有多个参数时,中的连接符号&应该是&amp;

熟悉正则表达式的朋友可能一看就是明白rule的匹配原理了。更多的配置可以参照http://tuckey.org/urlrewrite/manual/
页: [1]
查看完整版本: Apache URL Rewrite最简配置(二)