URLRewrite

来源:互联网 发布:淘宝网店开店费用 编辑:程序博客网 时间:2024/04/28 02:51

我们为什么要使用URLRewrite重写url技术呢,在网上搜了一下,有篇文章说是有主要三个原因(会用搜索的人一定能在网上搜索到)

 

1、满足搜索引擎的要求 google可以抓取动态页面,但是google对动态页面的评分一般低于静态页面.

2、隐藏技术实现。

                UrlRewrite 是 将静态页面转换为动态页面的一种技术.

例如.您网站页面是 http://www.yourdomain.com/news/docread.aspx?id=123 使用UrlRewrite转换后 可以 以 http://www.yourdomain.com/news/123.html 来访问.

 

3、满足美感的要求

 

 

1、 将urlrewrite-3.2.0.jar引入到自己的工程里

2、 创建一个urlrewrite.xml,里面配置的是 <urlrewrite> <rule>     <from>/some/olddir/(.*)</from>      <to type="redirect">/very/newdir/$1</to>      </rule> </urlrewrite> 说明:此处from配置的是页面的例如btab里配置的链接地址,to配置的是跳转的链接地址,可以配置多个rule,其中from或者是to都是用正则表达式来书写,to的type类型可以是forward也可以是redirect,区别在于前者拦截到指定地址之后页面不予显示,更安全些,后者在地址栏里显示最终跳到的页面地址

 <rule>
        <from>^/UrlRewriteTest1/(.*)\-(.*).html</from>
        <to>/example/Login_execute.do?username=$1&amp;password=$2</to>
    </rule>
  

例如:  
    <!-- 展会首页 -->
    <rule>
     <from>/exh.html</from>
     <to>/exh/exh_exhList.do</to>
    </rule>
   
    <!-- 展会列表 -->
    <rule>
     <from>/exh/([0-9]+)/exhinfo.html</from>
     <to>/exh/exhInfo_list.do?exhDateType=$1</to>
    </rule>
   

 

 

3、 在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> 

最后,在需要配置的地址的地方,写出from给出的格式的地址,以下是我配置的仅供参考,web.xml内容一样,urlrewrite.xml如下:

 <urlrewrite> 

          <rule>  

                      <from>^/kpi/kpi(One|Two)Line-(.*)$</from>  

                      <to type="forward">/kpi/kpi$1Line.jsp?reportID=$2</to> 

         </rule>

  </urlrewrite>

  

常见的错误有:

UrlRewrite 常见错误
1. 404错误(页面无法找到):没有网站根目录建立Httpd.ini 文件 或者 正则表达式 错误,都会导致 页面无法找到错误
2. 500错误(脚本程序错误): 目标动态页面程序错误
3. 404用户自定义错误: 如果网站管理员开启了404 网站自定义错误,urlrewrite将无法正常工作.

 

原创粉丝点击