首先声明:大牛们,别笑,俺是一小菜菜!
这两天发现项目上貌似有点问题,很多页面在跳转的时候 往往只是简单的<a href="xxxxxx.MM">
其实这样 也许会给恶意攻击者、敌对的竞争方带来便利!
因此,想到用urlrewrite来弄弄,但是老是出现问题!!总是跳不过去!
在大牛牛的指导下,终于搞定了,还是来做一个总结吧!!
首先下载urlrewrite的jar包。
然后在web.xml里面配置filter,这个filter必须配置在struts的filter前面,因为这是一个执行顺序的问题!
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>debug</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
之后,在相应的web-inf下面新建一个rule文件,用相应的规则处理url的问题!
这个文件名使用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>
<from>^(.*)\.do$</from>
<to type="forward">$1.MM</to>
</rule>
</urlrewrite>
这是我所用到的url变换规则,这个东东困扰了我好久!
再在配置文件web.xml中加上
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST </dispatcher>
<dispatcher>FORWARD </dispatcher>
<dispatcher>INCLUDE </dispatcher>
</filter-mapping>
其实搞出来就是那么的简单,其中注意4个方面,就能很简单的做出来!
1、<from> <to>
也就是说这个.do 是在页面里面写好的,也就是例如:
<body>
<a href="123123.do">高帅富</a>
</body>
从页面提取(from)132123.do文件映射到(to)什么文件!
2、其实这个.do文件是虚拟的,是没有这个文件的!其对应的文件名为 123123.MM
3.关于正则表达式 ,请自己在网上找相关的api文档 就会有相应的解答!
这里指出:<to type="forward">$1.MM</to>中的$1.MM,“$1”这个符号,指的是上文中的小括号()里面的内容,如果有两个小括号(),$1指向指向左起第一个,$2指向左起第二个!
4、type="forward"这个 这个可是把我搞惨了 还有有俺家的大牛牛在 ,才把俺引出了迷雾!
平时用forward的时候都没注意到,这意思是在跳转页面的时候,url地址在地址栏不变,什么不变呢??
还是按照123123.do输出在地址栏。
而,如果你写成了type="redirect" 那么,地址栏将会变成下面那个123123.MM!!!呵呵呵
如需将action的跳转 例如:list变成list.do 只需在struts配置文件加上
<constant name="struts.action.extension" value="do"></constant>
<!--action后缀.do -->
web.xml里配置
<init-param>
<param-name>struts.action.extension</param-name>
<param-value>do</param-value>
</init-param>
总结一句话:小菜菜的基础知识不扎实 好高骛远!! 有爱好IT的朋友可以加我QQ:474515923
互相学习 共同进步 最终达到共同富裕
分享到:
相关推荐
为什么使用UrlRewrite: 1 处理这样的情形:你要更改你的web应用中网页的结构 但你同时也要确保在你移动网页后 那些被人收藏的老URL不会成为死链接 2 其次可以隐藏网站所用的编程语言 还可以提高网站的可移植性 ...
URLRewrite使用时候一些属性的配置说明
在网上找了很多都不合心意,就知道改了下源码,只改了org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.class 文件,如果担心安全的朋友,可以下载 4.0.3的jar 替换UrlRewriteFilter.class即可。 confPath 默认 ...
urlrewrite重写地址,Urlrewrite 2.5.2 现在有2.6版本的,自己去网上找吧
URL Rewrite是微软针对IIS推出的一种对URL进行重写的扩展模块,目前支持用于IIS7及以上版本。该模块使IIS管理员能够创建强大的自定义规则,语法支持正则规则以及通配符规则过滤。它能够根据HTTP头和IIS服务器变量...
打造UrlRewrite源码 UrlRewrite一般都是在web.config里配置访问规则在路由到实际页面,所以先实现自定义节点信息读取,这里我定义了俩个类 webconfig定义了组,不需要的话可以把UrlRewriteConfigGroup类去掉并修改...
urlrewrite 只支持单个配置文件,默认的配置文件为:/WEB-INF/urlrewrite.xml 现在对urlrewrite-3.2的源码进行了修改,使它能够支持多文件和通配符的形式加载自定义配置文件,即可以进行如下的配置: <param-name>...
UrlReWrite(Url重写或伪静态)UrlReWrite(Url重写或伪静态)
urlrewrite Jar包 urlrewrite-3.1.0.jar
IIS URL Rewrite模块(URL 重写)
UrlRewrite.rarUrlRewrite.rar
UrlRewrite.dll 在使用开发的时候,win7或者win8的系统,可能会需要
使用urlrewrite的优点: 1、满足搜索引擎的要求 2、隐藏技术实现,提高网站的移植性 3、满足美感的要求
URLRewrite URL重写组件 里边有相关配置说明 包括了web.Config 外附一个Css
java urlrewrite demo
iis urlrewrite文件
urlrewrite 4.0.3 jar
urlrewrite 没听说吗? 用于url美化的 不过好像大多数会考虑伪静态~~~~~! 这个demo是eclipse工程 包括全部包 实现静态模拟及传参
url rewrite组件下载
urlrewrite,实现伪静态页面,UrlRewrite技术隐藏实现细节,这样修改移植都很方便,而且完全不损失pagerank