最近公司要开发新的项目要用到URL重写,本人技术水平有限,就了解了两个工具,ApaChe's的mod_rewrite和Urlrewrite。公司的大虾让选择用后者Urlrewrite,虾米跟之 — — 。
老规矩,学新技术先去官网http://tuckey.org/urlrewrite/ ,咬文档(本人比较笨,见笑 — — ),目前最新版本是 4.0.3,下载jar包 urlrewritefilter-4.0.3.jar 或者在Maven POM里配置下面代码
<dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version>4.0.3</version> </dependency>
本人使用的是后者。重新构建下项目,然后在项目的/web-inf/web.xml中添加上下面代码
<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> <!-- urlrewrite.xml 文件存放路径 default /WEB-INF/urlrewrite.xml --> <init-param> <param-name>confPath</param-name> <param-value>/WEB-INF/urlrewrite.xml</param-value> </init-param> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>
urlrewrite.xml 只能放到WEB-INF下面。
继续 urlrewrite.xml 配置文档代码
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN" "http://tuckey.org/res/dtds/urlrewrite3.2.dtd"> <urlrewrite> <rule> <note>大小写字母数字都可 </note> <from >/uee/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+).html$</from> <to type="forward">/uee/$1.do</to> </rule> <outbound-rule> <note> </note> <from>^/page/second.do\?me=([a-z]+)$</from> <to >/page/me_$1</to> </outbound-rule> </urlrewrite>
rule是url规则,from是显示出来的地址,to是映射的实际地址,$1是重写参数,可以为多个,()里是匹配的正则表达式.
<outbound-rule> 是隐藏 a 链接的,就如官网上说的 Note, If you are using JSTL (ie, <c:url) this will work also. 意思就是说需要转化的链接不能直接写在a标签中需要写在c:url或其他服务器需要解析的变量中这样才能对其重新显示。 在页面上插入下面代码
<a href="<%=response.encodeURL("/page/second.do?me=aa") %>">/page/second.jsp?me=aa</a>
然后鼠标放到该a链接上 你会发现访问路径已经变成了 http://localhost:8080/page/me_aa 真实的路径已经被隐藏。
常用正则表达式:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串 大小写都可
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^/w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
正则表达式这块要细心点,本人对这块没多少研究的,仅限与会用,知道大概意思。
好了,其余的东东,都不细说了,配置完毕后理想状态是可以运行了,是的,可以运行了,但是目前只是简单的一些页面的URL地址实现了重写,如果是Action的话就不行了,这时在/WEB-INF/web.xml中Struts2的filter-mapping 加入下面代码中<dispatcher>即可。
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.do</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> </filter-mapping>
相关推荐
在SSH2(Spring + Struts2 + Hibernate)框架中,URLRewrite是一种强大的工具,可以用于实现URL重写功能,使得网站的URL更加友好、易于理解和记忆。这在SEO优化及用户体验提升方面具有重要意义。 ##### URLRewrite...
在这个场景中,我们将深入探讨如何使用`URL Rewrite Filter`来重写Struts2的Action。 首先,让我们理解`URL Rewrite Filter`的基本概念。这个工具提供了一种方式,通过配置XML文件(如`urlrewrite.xml`)来定义一...
在这个最简实例中,我们将探讨如何在MyEclipse环境中集成Struts2和urlRewrite,创建一个基本的应用来演示URL重写功能。首先,你需要确保已经安装了MyEclipse,并且在项目中引入了Struts2和urlRewrite的相关依赖库。 ...
标题“urlrewrite2伪静态与使用文档(IIS)”涉及到的是在IIS(Internet Information Services)服务器环境中,使用urlrewrite2模块实现URL重写和伪静态功能的技术内容。URL重写是Web开发中的一项关键技术,它允许...
本框架为struts2+spring3+hibernate4+urlrewrite(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应
2. **添加规则**:在IIS Manager中选择目标站点,然后在“管理服务”下找到“URL重写”,点击“添加规则”按钮,选择适当的模板或自定义规则。 3. **编写规则**:在新建规则界面,定义输入和输出的URL模式,以及...
UrlRewrite是一个强大的URL重写工具,常用于Java Web应用中,尤其是与Struts2框架结合使用时,能够帮助开发者优化URL结构,提高网站的SEO友好性和用户体验。在这个"UrlRewrite例子"中,我们将深入探讨UrlRewrite的...
- **确保顺序正确:** 在`web.xml`中,URL Rewrite Filter应当配置在Struts Filter之前。 - **测试验证:** 配置完成后,务必进行充分的测试,确保所有链接都能够正确地重定向到目标页面。 - **兼容性考虑:** 不同...
2. 规则编写:UrlRewrite的规则通常写在web.config文件中,使用XML格式。一条规则由`<rule>`元素定义,包含`name`(规则名称)、`pattern`(匹配模式)、`action`(动作)等属性。例如,以下规则将所有请求的".aspx...
URLRewrite是一款强大的URL管理工具,尤其在Java Web应用中广泛使用,它可以帮助开发者实现URL的重写和转换,以达到优化URL、隐藏真实路径、提高SEO效果等目的。在本篇文章中,我们将深入探讨URLRewrite的核心概念和...
`URLrewrite`是一个基于Java的开源过滤器,它实现了Apache的mod_rewrite功能,广泛应用于Spring、Struts、JSF等Java Web框架中。它提供了强大的规则配置,使得开发者能够灵活地对URL进行重写和重定向。 在使用`URL...
2. **参数传递**:在URL中隐藏实际的请求参数,提高安全性。 3. **路径重定向**:根据预设规则进行URL重定向,如错误页处理、旧链接转向新链接等。 4. **动态路由**:通过正则表达式匹配URL,实现灵活的动态路由策略...
3 最重要的 在象Google Yahoo 和 Live 这样的搜索引擎中提高你网站上网页的搜索相关性 具体来说 URL重写经常能使你在你网站上">什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站...
2. 配置:在IIS管理器中,选择目标站点,然后在“管理服务”中启用URL Rewrite。接着,可以右键点击“URL Rewrite”,选择“添加规则”来创建新的重写规则。 三、规则编写 1. 规则结构:一个规则包括匹配模式...
在Struts1.2框架中,URL通常是带有.action后缀的,这在某些情况下可能不那么直观和友好。URLRewriteFilter的引入就是为了改进这种情况,它允许我们定义一系列规则来转换URL,使其更易于理解和管理。例如,我们可以将...
要使用URLRewrite,我们需要在Web工程中添加urlrewrite.jar包,并在WEB-INF目录下创建urlrewrite.xml文件。urlrewrite.xml文件中的内容非常简单,例如: ``` ^/page/(.*)$ <to>/page/$1.jsp ``` 这个规则表明,...
2. **正则表达式**:UrlRewrite规则中经常用到正则表达式来匹配和提取URL中的特定部分。熟练掌握正则表达式对于编写复杂的URL重写规则至关重要。 3. **条件组合**:有时候,我们可能需要多个条件一起满足才执行重写...
在Windows 7或Windows 8操作系统中,如果开发者在部署或调试Web应用程序时遇到与URL重写相关的功能需求,可能需要确保UrlRewrite.dll已经正确安装并且配置。这个组件通常包含在IIS的URL重写模块安装包内,可以通过...
2. **配置**:配置主要在`web.config`文件中进行,通过添加`<system.webServer>`节点下的`<rewrite>`节点来定义重写规则。例如: ```xml <rewrite> <!-- 规则示例 --> <match url="^product/([0-9]+)$...
在Java Web应用程序中,URLRewrite常用于隐藏实际的Servlet或JSP路径,提升用户体验,同时也有助于保护内部系统结构。 二、URLRewrite的工作原理 URLRewrite的核心是通过匹配规则来转换HTTP请求的URL。这些规则...