2007-07-26

使用UrlRewriteFilter动态URL静态化

关键字: UrlRewriteFilter

http://www.nihaoblog.com/1_733.html

(方法一)

参见:http://www.nihaoblog.com/1_1765.html

(方法二)

    所用基于动态的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.tukey.web.filters.urlrewrite.UrlRewriteFilter[/filter-class]
[/filter]
[fitler-mapping]
   [filter-name]UrlRewirteFilter[/filter-name]
   [url-pattern]/*[/url-pattern]
[/filter-mapping]
根据自己的需要,将相应目录下的url转给UrlRewriteFilter来处理。
   3、配置urlwrite规则文件WEB-INF/urlrewrite.xml 
 
 
配置如下: 
 [rule]
    [form]/content/([0-9]+)_([0-9]+).html[/from] 
    [to]/content.jsp?id=$1&contentid=$2 [/to]
[/rule]
    
注意:有多个参数时,中的连接符号&应该是&

[rule]
  [from]^/g_detail_([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+).wml$[/from]
  [to type="redirect" encode="true"]/wapgame/c.x\?_i=g_detail&_g=$1&_u=$2&cl=$3&_t=$4[/to]
 [/rule]

 
 
熟悉正则表达式的朋友可能一看就是明白rule的匹配原理了。更多的配置可以参照http://tuckey.org/urlrewrite/manual/
 
 
 
 
 
 
评论
dodomail 2007-09-20
你在分页的时候不要写成list.jsp?page=2,直接写成list_2.html
UrlRewriteFilter会自动解析的.
withoutyoubb 2007-09-17
问一个关于urlrewrite的分页问题。
比如我真实页面是list.jsp?page=1.
我通过urlrewrite之后想得到list_1.html(最有的1当前的页码)
我点击第二页的时候出现的是list.jsp?page=2。

请问有什么办法得到list_2.html或者list_3.html。
不知道是分页的问题还是没有配置好。请多多指教。
发表评论

您还没有登录,请登录后发表评论

dodomail
搜索本博客
存档
最新评论