UrlRewriteFilter 的配置
2006-10-13 09:34
UrlRewriteFilter 是一个不错的URL转换工具,可以将服务器上存在的文件转换成想要的任何URL路径。
首先在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>
再在web.xml同级目录下建立一个urlrewrite.xml文件 <?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>/2th</from> <to type="redirect">%{context-path}/second.jsp</to> </rule> <rule> <from>([a-z]+)/([a-z]+).html</from> <to>$1.jsp?page=$2</to> </rule> <outbound-rule> <from>/second.jsp</from> <to>/2th</to> </outbound-rule> </urlrewrite>
第一个rule是将/2th转换成/second.jsp文件 第二个rule是将输入的路径如:http://localhost:81/second/index.html 是将second替换成to的$1,将index替换成to的$1,也就是说当成实际的second.jsp的参数处理
配置urlwrite规则文件WEB-INF/urlrewrite.xml 添加自己的urlwrite规则,如将 http://localhost/aaa/bbb.jsp?id=99&name=abc 表现为: http://localhost/aaa/bbb/99_abc.html 配置如下: <rule> <from>/aaa/bbb/([0-9]+)_([a-z]+).html</from> <to>/../aaa/bbb.jsp?id=$1&name=$2</to> </rule>
|
----------------------------------------------
----------------------------------------------
----------------------------------------------
UrlRewriteFilter的介绍:
UrlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如Resin,Orion,Tomcat等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页。
为什么要使动态的URL变成伪静态的URL:
1:为了对搜索的友好,因为有些搜索不能抓取动态页面或是对动态抓取的页面没有静态页面高.
2:屏蔽内部的url结构.
3:美化url.
UrlRewriteFilter使用:
1.下载http://tuckey.org/urlrewrite/#download目前稳定的版本是2.6,最新版3.1,推荐使用2.6版.解压缩后将文件考到相应的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.5a520.cn/book/116 会直接forward 到 http://www.5a520.cn/book.php?id-116 结果都是"创世传奇之魔族风云 _玄幻小说_小说520网"这个标题.
http://www.5a520.cn/bookxuanhuan/3 会直接forward 到 http://www.5a520.cn/cata.php?id=bookxuanhuan&index=3 结果都是"玄幻小说_小说520网"这个标题.
配置如下:
<rule>
<from>/book/([0-9]+)$</from>
<to>/book.php?id=$1</to>
</rule>
<rule>
<from>/book([a-z]+)$</from>
<to>/cata.php?id=book$1</to>
</rule>
<rule>
<from>/book([a-z]+)/([0-9]+)$</from>
<to>/cata.php?id=book$1& index=$2</to>
</rule>
注意:
1.urlrewrite.xml是utf-8.所以如果你要在rule上加note标签为中文的话,也一定是要utf-8
2.UrlRewriteFilter 最好是配置在web.xml的前面filter上,不然有可能对有些url转变失去作用.
3.在写rule的时,如果有多个参数时,中间的连接符号&应该是&
下面对 urlrewrite.xml标签的一些说明:
urlrewrite属性:有仅只有一个.
rule属性::至少一个.
<name> 属性(可选)
<rule>
<name>World Rule</name>
<from>^/world/([a-z]+)/([a-z]+)$</from>
<to>/world.jsp?country=$1& city=$2</to>
</rule>
<note>属性(可选)
<rule>
<name>World Rule</name>
<note>
Cleanly redirect world requests to JSP,
a country and city must be specified.
</note>
<from>^/world/([a-z]+)/([a-z]+)$</from>
<to>/world.jsp?country=$1& city=$2</to>
</rule>
分享到:
相关推荐
在提供的压缩包文件名称列表中,"urlrewrite.xml错误提示.doc"可能是一个文档,包含了关于如何解决UrlRewriteFilter配置过程中的常见问题和错误的指南。通常,UrlRewrite.xml是该过滤器的核心配置文件,包含了一系列...
6. **实战示例**:例如,我们可以在URLRewriteFilter配置文件中添加以下规则,将`/product?id=123`重写为`/product/123`: ```xml ^/product\?id=(.*)$ <to type="redirect">%{context-path}/product/$1 ```...
3. **UrlRewriteFilter配置** - `UrlRewriteFilter`的配置主要在`urlrewrite.xml`文件中进行,包括一系列的 `<rule>` 标签,每个规则都包含匹配条件和重写规则。 - 匹配条件可以基于URL路径、查询参数、请求方法等...
1. **规则定义**:`URLRewriteFilter`通过XML配置文件(通常命名为`urlrewrite.xml`)来定义重写规则。开发者可以创建一系列规则,包括匹配模式、条件、重写或redirect操作等,以满足复杂的URL转换需求。 2. **匹配...
最后,`urlrewrite.xml`文件是URLRewriteFilter的核心配置文件,其中定义了各种URL重写规则。通过学习和理解URLRewriteFilter提供的规则语法,开发者可以灵活地定制URL处理逻辑,以满足不同Web应用的需求。 综上所...
#### 二、URLRewriteFilter配置参数详解 ##### 1\. web.xml中过滤器配置 在使用URLRewriteFilter之前,需要先完成以下步骤的配置: - **下载并添加jar包**:首先需要下载`urlrewritefilter.jar`包,并将其添加到...
4. **Struts1.2配置**:在Struts1.2的配置文件struts-config.xml中,可能需要调整Action配置,确保Action的映射与URLRewriteFilter的规则相匹配。 5. **测试与调试**:完成配置后,启动服务器,通过浏览器访问应用...
然后,在web.xml文件中添加URLRewriteFilter的配置,指定过滤器类和初始化参数。 ```xml <filter-name>UrlRewriteFilter <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter <param-name>log...
开发者只需在Web应用的web.xml中配置这个过滤器,然后指定配置文件的位置,就可以开始使用URLRewriteFilter了。 关于"伪静态"的实现,URLRewriteFilter起着关键作用。伪静态是一种技术,通过服务器端的URL重写,将...
URLRewriteFilter的核心在于其规则配置文件`urlrewrite.xml`,通常放在`WEB-INF`目录下。以下是一些常见的规则示例: ```xml ^/oldpath/(.*)$ <to>/newpath/$1 ^/product-\d+ ^/product-(\d+)$ ...
2. **配置文件(urlrewrite.xml)**:URLRewriteFilter的配置文件,用于存放所有规则。开发者可以根据需求在这个XML文件中添加、修改或删除规则。 二、URLRewriteFilter的安装与配置 1. **下载**:下载`...
在“urlrewritefilter-2.6.zip”中,包含的核心文件是`WEB-INF`目录下的`urlrewrite.xml`,这是URLRewriteFilter的配置文件。开发者需要在这个文件中定义各种重写规则,例如: ```xml ^/oldpage.html$ <to>/...
2. **配置过滤器**:在`web.xml`中配置`UrlRewriteFilter`过滤器,指定配置文件的位置和初始化参数。 3. **编写配置文件**:创建`urlrewrite.xml`,定义URL重写规则。例如,将`/show?id=123`重写为`/show/123`: ...
总结来说,URLRewriteFilter是一个强大的URL管理工具,它通过简单的XML配置即可实现复杂的URL重写功能。开发者可以根据需求定制规则,提升网站的性能和用户体验。对于那些需要对URL结构进行调整或优化的项目,...
使用URLRewriteFilter需要在web.xml中添加Filter配置,并创建一个名为`urlrewrite.xml`的配置文件。`urlrewrite.xml`中定义了URL重写的规则,例如: ```xml ^/product\.php\?id=([0-9]+)$ <to>/product/$1 ``` ...
在`WEB-INF`目录下,我们需要创建`web.xml`配置文件,添加URLRewriteFilter的监听器和过滤器配置。同时,还需要在项目中添加`urlrewritefilter-3.2.0.jar`依赖,并在`WEB-INF`目录下创建`urlrewrite.xml`规则配置...