【问题标题】:My Tomcat rewrite rule not working and I don't know why我的 Tomcat 重写规则不起作用,我不知道为什么
【发布时间】:2018-12-19 17:24:25
【问题描述】:

我无法解决重写规则,请帮助找到丢失的和平。

正则表达式似乎没问题,因为我在 Notepad++ 中测试了替换。

来源网址是: http://qf.myserver.com:8080/archive?get&pVersion=0045&contRep=T1&docId=F40343A990B01ED8BAF97A695626C259&ixUser=QFNCOTAAP001&ixAppl=libdsh&accessMode=r&authId=QFNCOTAAP001&expiration=20181219153855&secKey=MIIBXAYJKoZIhvcNAQcCo

目标网址是: http://qf.myserver.com:8080/archive?get&pVersion=0045&contRep=T1&docId=F40343A990B01ED8BAF97A695626C259&ixUser=QFNCOTAAP001&ixAppl=libdsh&accessMode=r&authId=QFNCOTAAP001

RewriteCond 应该检查包含 'archive?get' 和 '&contRep=T1' 的链接,并从 URL 向后删除所有内容,包括 &expiration...

context.xml
<Context>
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
</Context>

in \WEB-INF\rewrite.config and \conf\Catalina\localhost\rewrite.config:

RewriteCond     %{REQUEST_URI}      (archive\?get.*)(\&contRep=T1.*)
RewriteRule     ^(.*).expiration.*      $1

它不替换 URL,Tomcat 仍然执行源 URL。

【问题讨论】:

    标签: tomcat url-rewriting rules


    【解决方案1】:

    问题出在 RewriteCond 中,因为我想要过滤的内容在 %{REQUEST_URI} 中不可用。现在我有

    RewriteCond     %{QUERY_STRING} ^(get.*&contRep=T1&.*)&expiration.*$
    RewriteRule     ^(.*)$  $1?%1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 2021-11-16
      • 2021-04-09
      • 2015-01-06
      • 1970-01-01
      相关资源
      最近更新 更多