Мое правило перезаписи Tomcat не работает, и я не знаю почему - PullRequest
0 голосов
/ 19 декабря 2018

Я не могу устранить неполадки с правилом перезаписи, помогите найти пропавший мир.

Регулярное выражение выглядит нормально, так как я тестировал замену в Notepad ++.

Исходный URL: 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

Целевой URL-адрес: 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-адрес.

1 Ответ

0 голосов
/ 20 декабря 2018

Проблема была в RewriteCond, поскольку то, что я хотел отфильтровать, не было доступно в% {REQUEST_URI}.Теперь у меня есть

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