tomcat - 我的 Tomcat 重写规则不起作用,我不知道为什么

标签 tomcat url-rewriting rules

我无法对重写规则进行故障排除,请帮助找到缺失的和平。

正则表达式似乎没问题,因为我在 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。

最佳答案

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

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

关于tomcat - 我的 Tomcat 重写规则不起作用,我不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53856346/

相关文章:

apache - Tomcat如何通过IP地址限制访问?

tomcat - 应用程序停止时显示自定义网页

iis - 重写 IIS 7 中响应头的规则(替换 cookie 路径)

java - 如何在Drools 5.5中指定列表的类型?

windows - 无法从 Windows 上的 Tomcat webapp 运行 nutch

jsp - 通过 Tomcat 服务器运行 WebApplication

spring - 处理将用户名作为 url 一部分的 url 模式

.htaccess - 如何创建一个 SEO 友好的 URL

oop - OOP 有什么规则吗?

architecture - 像 Outlook Express 中使用的规则系统在理论上如何工作?怎么做到的?