URL重写框架

第一步:下载urlrewrite-2.6.0.现在最新版本是3.1的。
http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip
http://urlrewritefilter.googlecode.com/files/urlrewritefilter-3.1.0.zip
把urlrewrite-2.6.0.jar拷到classpath下。

第二步:在WEB-INF目录下建一个urlrewrite.xml文件。

第三步:在web.xml中初始化。加上下面的代码:

01. <!-- Set URL Rewrite-->
02.<filter>
03. <filter-name>UrlRewriteFilter</filter-name>
04. <filter-class>
05. org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
06. </filter-class>
07.</filter>
08.<filter-mapping>
09. <filter-name>UrlRewriteFilter</filter-name>
10. <url-pattern>/*</url-pattern>
11.</filter-mapping>
最后我要简单的讲一下常用的两个配置规则.以下就是简单的urlrewrite.xml配置片段。不要习惯Java的命名法把它写成urlRewrite.xml,这样即使你加上

01.<init-param>
02. <param-name>confPath</param-name>
03. <param-value>/WEB-INF/urlRewrite.xml</param-value>
04. </init-param>
在启动的服务器的时候还是会报错的,因为源码中必须是全小写的(urlrewrite.xml)且只能放到WEB-INF下面。

01. <?xml version="1.0" encoding="utf-8"?>
02.!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
03. "[url]http://tuckey.org/res/dtds/urlrewrite2.6.dtd[/url]">
04.urlrewrite>
05. <rule>
06. <from>^/(\w+)/(\w+)/page_(\d+)\.html$</from>
07. <to type="forward">/$1.htm?category=$2&page=$3</to>
08.</rule>
09. <rule>
10. <from>^/rss/yahoo\.html$</from>
11. <to type="redirect"> [url]http://add.my.yahoo.com/rss? url=http://feed.feedsky.com/W3CSSiteFeed[/url]
12. </to>
13.</rule>
14./urlrewrite>
所有的规则配置都写在这里。第一个常用个规则就是站内的简单重写。

01.<rule>
02. <from></from>
03. <to type="forward></to>
04.</rule>
05. <from></from>写上你自己定义的访问地址,<to type="forward></to>就是实际的访问地址。比如我们实际的访问地址是:[url]http://yousite.com/entity.htm[/url] ?category=userpage=2.而我们想把它重写为[url]http://yousite.com/entity/uesr/page_2.html[/url]。这样看起来比我们实际的要好看的多。我们就应该这样的写:
06.<rule>
07. <from>^/(\w+)/(\w+)/page_(\d+)\.html$</from>
08. <to type="forward">/$1.htm?category=$2&page=$3</to>
09. </rule>
简单的介绍一下常用的正规表示式:
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

常用的&要用 &来表示。$1,$2代表与你配置正规表达式/(\w+)/(\w+)/相对应的参数。<to type="forward">默认的是 type="forward".
另一个常用的规则就是连接外部的网站。就要用到。<to type="redirect">

01.<rule>
02. <from>^/rss/yahoo\.html$</from>
03. <to type="redirect"> [url]http://add.my.yahoo.com/rss? url=http://feed.feedsky.com/MySiteFeed[/url]
04. </to>
05.</rule>
我们的网站用到最多的无非就这两种规则。至于正规表达式的写法很多种。希望对有感兴趣的朋友,可以试试。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值