zoukankan      html  css  js  c++  java
  • java urlrewrite实现伪静态化

    1.示例

      http://www.onlyfun.com/goods/company.jsp?companyId=455326 ==> http://www.onlyfun.com/company/455326.html

    2.好处

      (1)更好满足搜索引擎要求;

      (2)更美观,给用户带来更良好的体验;

      (3)安全性(页面,参数,技术)。

    3.实现

      (1)第三包urlrewrite;(2)Apache HTTP Server 2.x配制mod_proxy,Rewrite;(3)struts、springMVC reset风格等。

    4.urlrewrite示例

      (1)下载2.6或3.X版jar包导至项目。下载地址:http://www.tuckey.org/urlrewrite/ (以3.2为示例)。

      (2)解压下载文件,将urlrewritefilter-3.2.0WEB-INFlib urlrewrite-3.2.0.jar,导入工程。

      (3)将urlrewritefilter-3.2.0WEB-INF urlrewrite.xml,加入至工程WEB-INF目录下。

      (4)web.xml添加如下代码(在urlrewrite.xml中可找到),拦截请求,对匹配的请求进行rewrite。

       <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>WARN</param-value>
      </init-param>
      </filter>
      <filter-mapping>
      <filter-name>UrlRewriteFilter</filter-name>
      <url-pattern>/*</url-pattern>
      </filter-mapping>

      (5)urlrewrite.xml中配制需实现静态化的请求。

    5.urlrewrite.xml配制

      (1)rule配制

        处理伪静态化地址。如

        将请求为http://www.onlyfun.com/company/455326.html转至http://www.onlyfun.com/goods/company.jsp?companyId=455326进行处理,

        地址栏中仍显示为http://www.onlyfun.com/company/455326.html,在urlrewrite.xml中配制

       <rule>
      <from>^/company/([0-9]+).html$</from>
      <to>/goods/company.jsp?companyId=$1</to>
      </rule>
     

        <from>通过正则表达式对请求进行匹配</from>

        <to>实际请求地址</to>

     

      (2)outbound-rule配制 

        将页面的超链接选项转化为伪静态化,如:

        http://www.onlyfun.com/goods/company.jsp?companyId=455326 转化为 http://www.onlyfun.com/company/455326.html,在urlrewrite.xml中配制 

       <outbound-rule>
      <from>^/urlrewriteDemo/goods/company.jsp?companyId=([0-9]+)$</from>
      <to>/urlrewriteDemo/company/$1.html</to>
      </outbound-rule>
     

        同时页面中的超链接需经过response.encodeUrl(url)转化,或采用<C:URL>标签进行转化。如:  

        <c:url value="/goods/company.jsp?companyId=${goods.company.companyId }" var="tempUrl"></c:url>
    <a href="${tempUrl }"> ${goods.company.companyName }</a>
     
        response.encodeURL(URL);

      

      (3)注意:转义&=>&amp;  ?=>/?等。

    6.参考资料

      urlrewrite.xml配置http://www.tuckey.org/urlrewrite/manual/2.6/#filterparams

      正则表达式http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

      本地查看示例http://localhost:8080/projectname/rewrite-status


    7.DEMO源码地址

      http://download.csdn.net/detail/junliu0930/3881220

    8.apache整合404找不到地址问题

      httpd.conf中配制,伪路径由tomcat进行处理。

      

    转自http://www.cnblogs.com/liujun0930/archive/2011/12/05/2276553.html

  • 相关阅读:
    深入解读kubernetes网络基本原理
    Go!Go!Go!设计模式-组合设计模式
    Go!Go!Go!设计模式-创建型模式(简单工厂,工厂方法,抽象工厂)
    Linux内核之磁盘和分区
    Docker容器网络基础
    chart仓库之创建-入库-使用(helm,helm-push,chartmuseum)
    Go语言完整解析Go!Go!Go!(一)数据类型 之 Channel & Goroutine
    k8s爬坑集锦[网络问题]-服务无法访问
    数字证书的原理与应用&爬坑
    ingress的用法与原理
  • 原文地址:https://www.cnblogs.com/dead-trap-ramble/p/3575057.html
Copyright © 2011-2022 走看看