首页 > 代码库 > urlrewrite配置
urlrewrite配置
urlrewrite顾名思义,就是对URL进行重写,用户得到的全部都是经过处理后的URL地址,这样做我觉得好处有三:
一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多
二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL
三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息
2、WEB-INF 目录下新增urlrewrite.xml文件
一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多
二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL
三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息
其实,urlrewrite其实就是个过虑器,它将会过虑用户的所有请求,符合规则的便对其进行重定向
官网:http://tuckey.org/urlrewrite/ 下载urlrewrite-x.x.x.jar扔到需使用此功能项目的lib目录中去,在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> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>com.coco.TestServlet</servlet-class> </servlet>
2、WEB-INF 目录下新增urlrewrite.xml文件
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd"> <urlrewrite> <!-- <rule> <note>重写index.jsp成index.html</note> <note>example:/index.html</note> <from>/index.html</from> <to type="forward">/index.jsp</to> </rule> <rule> <note>将view根目录下所有jsp资源重写成/xxx.action</note> <note>example:/index.action</note> <from>/([A-Za-z0-9]+).action</from> <to type="forward">/view/$1.jsp</to> </rule> <rule> <note>forward(转发模式)传参</note> <note>example:/user/param/fancy/8080.do</note> <from>/user/([A-Za-z]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+).do</from> <to type="forward">/view/parameter/$1.jsp?username=$2&password=$3</to> </rule> <rule> <note>redirect(重定向模式)传参,to中写绝对地址</note> <note>example:/admin/param/fancy/8080.do</note> <from>/admin/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+).do</from> <to type="redirect">/urlWriter2/view/parameter/$1.jsp?username=$2&password=$3</to> </rule> --> <rule> <note>5S体验馆</note> <from>^/5SPavilion/(H[0-9]+)/5SPavilonDetail.html$</from> <to type="forward">/5SPavilion/5SPavilonDetail.html?tradeId=fiveSPavilonDtail&inst_id=$1</to> </rule> </urlrewrite>这样 页面<a href=http://www.mamicode.com/"5SPavilion/H1111/5SPavilonDetail.html"></a>,中间的 H1111是动态的参数,这种方式是REST风格。
<outbound-rule>
<from>/NewsInfo.do\?method=view&id=([0-9]+)$</from>
<to>/NewsInfo/NEWS_$1</to>
</outbound-rule>
rule结点中form的规则默认使用的是正则表达式来匹配的,当用户访问服务器时的URL会与该配置相比较,如果符合规则就会按照下面to结点中的配置对其进行跳转,其默认是forward跳转,具体配置可见官网文档。
outbound-rule结点是服务器解析后的页面URL对外表现的形式。
部分引用 :http://beyondlovew.iteye.com/blog/432642
urlrewrite配置
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。