`

urlrewrite的使用,亲测!

阅读更多

 

首先声明:大牛们,别笑,俺是一小菜菜!

 

这两天发现项目上貌似有点问题,很多页面在跳转的时候 往往只是简单的<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

 

互相学习  共同进步 最终达到共同富裕

分享到:
评论
2 楼 =寂寞_狐狸= 2012-07-20  
fatedgar 写道
我想要一种结果像这样:
在外网服务器上有个项目他的URL是:http://10.252.4.4:8077/jkda3
我想在本地输入:http://happysys:8080/jkda3就连接到上面的URL中去了
这个可以实现不?

应该是可以实现的 如果是类似于tomcat这种的话 在配置文件里面配置相应的link 应该能跳转到外网的地址的!
1 楼 fatedgar 2012-05-04  
我想要一种结果像这样:
在外网服务器上有个项目他的URL是:http://10.252.4.4:8077/jkda3
我想在本地输入:http://happysys:8080/jkda3就连接到上面的URL中去了
这个可以实现不?

相关推荐

    netcn_URLRewrite

    为什么使用UrlRewrite: 1 处理这样的情形:你要更改你的web应用中网页的结构 但你同时也要确保在你移动网页后 那些被人收藏的老URL不会成为死链接 2 其次可以隐藏网站所用的编程语言 还可以提高网站的可移植性 ...

    URLRewrite帮助文档

    URLRewrite使用时候一些属性的配置说明

    urlrewrite 支持自定义多配置文件

    在网上找了很多都不合心意,就知道改了下源码,只改了org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.class 文件,如果担心安全的朋友,可以下载 4.0.3的jar 替换UrlRewriteFilter.class即可。 confPath 默认 ...

    urlrewrite-maven-example.zip

    urlrewrite重写地址,Urlrewrite 2.5.2 现在有2.6版本的,自己去网上找吧

    URL Rewrite.zip

    URL Rewrite是微软针对IIS推出的一种对URL进行重写的扩展模块,目前支持用于IIS7及以上版本。该模块使IIS管理员能够创建强大的自定义规则,语法支持正则规则以及通配符规则过滤。它能够根据HTTP头和IIS服务器变量...

    打造UrlRewrite源码

    打造UrlRewrite源码 UrlRewrite一般都是在web.config里配置访问规则在路由到实际页面,所以先实现自定义节点信息读取,这里我定义了俩个类 webconfig定义了组,不需要的话可以把UrlRewriteConfigGroup类去掉并修改...

    urlrewrite 支持自定义多配置文件(*通配符)

    urlrewrite 只支持单个配置文件,默认的配置文件为:/WEB-INF/urlrewrite.xml 现在对urlrewrite-3.2的源码进行了修改,使它能够支持多文件和通配符的形式加载自定义配置文件,即可以进行如下的配置: &lt;param-name&gt;...

    UrlReWrite(Url重写或伪静态)

    UrlReWrite(Url重写或伪静态)UrlReWrite(Url重写或伪静态)

    urlrewrite-3.1.0.jar

    urlrewrite Jar包 urlrewrite-3.1.0.jar

    IIS URL Rewrite模块(URL 重写).xmind

    IIS URL Rewrite模块(URL 重写)

    UrlRewrite.rar

    UrlRewrite.rarUrlRewrite.rar

    UrlRewrite.dll

    UrlRewrite.dll 在使用开发的时候,win7或者win8的系统,可能会需要

    URLRewrite配置和使用

    使用urlrewrite的优点: 1、满足搜索引擎的要求 2、隐藏技术实现,提高网站的移植性 3、满足美感的要求

    URLRewrite URL重写组件

    URLRewrite URL重写组件 里边有相关配置说明 包括了web.Config 外附一个Css

    URLrewrite-实例

    java urlrewrite demo

    iis urlrewrite文件

    iis urlrewrite文件

    urlrewrite 4.0.3 jar包.rar

    urlrewrite 4.0.3 jar

    urlrewrite3.04的demo

    urlrewrite 没听说吗? 用于url美化的 不过好像大多数会考虑伪静态~~~~~! 这个demo是eclipse工程 包括全部包 实现静态模拟及传参

    url rewrite组件.rar

    url rewrite组件下载

    urlrewrite.dll

    urlrewrite,实现伪静态页面,UrlRewrite技术隐藏实现细节,这样修改移植都很方便,而且完全不损失pagerank

Global site tag (gtag.js) - Google Analytics