现在UrlRewriter技术有两个技术平台 的,一个就是在Java方向的,另一个就是.NET方向的。今天我们讲的是Java方向的应用。
首先让我们了解它的工作原理,说白了它就是一个简 单的过滤器(Filter) ,看看源码你就会很快的明白,它就是通过我们在jsp中常用的两个方法实现的forward(),sendRedirect(). 下面我们就快速 的为你的网站搭建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中初始化。加上下面的代码: <!-- Set URL Rewrite--> < 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> 最 后我要简单的讲一下常用的两个配置规则.以下就是简单的urlrewrite.xml配置片段。不要习惯Java的命名法把它写成 urlRewrite.xml,这样即使你加上 <init-param> < param-name>confPath</param-name> < param-value>/WEB-INF/urlRewrite.xml</param-value> < /init-param> 在 启动的服务器的时候还是会报错的,因为源码中必须是全小写的(urlrewrite.xml)且只能放到WEB-INF下面。 <?xml version="1.0" encoding="utf-8"?> < !DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" "http://tuckey.org/res/dtds/urlrewrite2.6.dtd"> < urlrewrite> < rule> < from>^/(/w+)/(/w+)/page_(/d+)/.html$</from> < to type="forward">/$1.htm?category=$2&page=$3</to> < /rule> < rule> < from>^/rss/yahoo/.html$</from> < to type="redirect"> http://add.my.yahoo.com/rss? url=http://feed.feedsky.com/W3CSSiteFeed < /to> < /rule> < /urlrewrite> 所 有的规则配置都写在这里。第一个常用个规则就是站内的简单重写。 <rule> < from></from> < to type="forward></to> < /rule> < from></from> 写上你自己定义的访问地址,<to type="forward></to>就是实际的访问地址。比如我们实际的访问地址是:http://yousite.com /entity.htm ?category=user&page=2.而我们想把它重写为http://yousite.com/entity/uesr /page_2.html。这样看起来比我们实际的要好看的多。我们就应该这样的写: <rule> < from>^/(/w+)/(/w+)/page_(/d+)/.html$</from> < to type="forward">/$1.htm?category=$2&page=$3</to> < /rule> 简 单的介绍一下常用的正规表示式: 代码 说明 . 匹配除换行符以 外的任意字符 /w 匹配字母或数字或下划线或汉字 /s 匹配任意的空白符 /d 匹 配数字 /b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹 配字符串的结束 常用的&要用 &来表示。$1,$2代表与你配置正规表达式/(/w+)/(/w+)/相对应的参数。<to type="forward">默认的是 type="forward". 另一个常用的规则就是连接外部的网站。就要用到。<to type="redirect"> < rule> < from>^/rss/yahoo/.html$</from> < to type="redirect"> http://add.my.yahoo.com/rss? url=http://feed.feedsky.com/MySiteFeed < /to> < /rule> < !--v:3.2--> |
相关文章
- 04-03web应用系统开发,CSS内联样式的使用
- 04-03(1)go web开发之 zap日志库的使用及gin框架配置zap记录日志详细文档讲解分析
- 04-03SpringBoot 基于web应用开发(请求参数获取,静态资源,webjars)
- 04-03使用Thymeleaf开发Web项目
- 04-03使用 Chrome 开发者工具的 lighthouse 功能分析 web 应用的性能问题
- 04-03实操记录,带步骤|使用Spring Boot + MyBatis + FreeMarker + Ehcache进行web开发
- 04-03springboot web开发中使用thymeleaf导入模板的三种方式
- 04-03LNMP添加、删除虚拟主机及伪静态使用教程
- 04-03在Notes应用开发中使用Web Service入门
- 04-03ubuntu18.04从零开始配置环境(jdk+tomcat+idea)到使用idea开发web应用和servlet