• urlwriterfilter地址栏的伪装


            最近在做项目的时候遇到个问题,就是用户访问的主页是http://ip:port/projectName/folder/index.html。但是呢在项目名和主页之间就是多了那么一层路径folder,就是这么一层路径让用户感觉非常不爽,我就找到了这个非常简单的解决方案:urlwriterfilter。配置完之后当用户访问http://ip:port/projectName/index.html就是在访问http://ip:port/projectName/folder/index.html,而且地址栏还是http://ip:port/projectName/index.html。

            首先到http://urlrewritefilter.googlecode.com/files/urlrewritefilter-3.2.0.zip下载urlrewritefilter。下载完成之后将jar包拷贝到WEB-INF下的lib里,然后将urlrewrite.xml复制到项目下的WebRoot/WEB-INF/目录下。接着在web.xml里配置过滤器,如下:

     <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>

    这样urlrewrite我们就配置好了,我们就可以进行访问路径的配置了。假如我们要配置的就是我开篇所说的那样。

    我们想让用户访问http://ip:port/projectName/index.html其实跳转的却是http://ip:port/projectName/folder/index.html,而浏览器的地址栏却没变仍然是http://ip:port/projectName/index.html,我们就可以在urlrewrite.xml里做如下配置:

    <rule>
            <!-- 我们访问的地址 -->
            <from>/index.html</from>
            <!-- 实际访问的地址 -->
            <to>/folder/index.html</to>
    </rule>


           这样我的要求就实现了。

    小结:配置的时候还可以配置是转发还是重定向的属性,而且还可以对带参数的url进行伪装,在xml的配置里还可以使用正则表达式进行配置,例如:<from>^/folder/index/([0-9]+)_([a-z]+).html$</from>。

  • 相关阅读:
    [TJOI2019]大中锋的游乐场——最短路+DP
    [TJOI2019]甲苯先生的滚榜——非旋转treap
    [TJOI2019]甲苯先生的字符串——矩阵乘法+递推
    [TJOI2019]唱、跳、rap和篮球——NTT+生成函数+容斥
    [ZJOI2020]字符串
    Ubuntu 20.04 工作区小记
    2020省选犯傻记
    寒假到省选的一些笔记
    AtCoder tokiomarine2020 题解
    [CF1336E]Chiori and Doll Picking
  • 原文地址:https://www.cnblogs.com/SunnyYue/p/3970291.html
Copyright © 2020-2023  润新知