Я не могу устранить неполадки с правилом перезаписи, помогите найти пропавший мир.
Регулярное выражение выглядит нормально, так как я тестировал замену в 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-адрес.
Проблема была в RewriteCond, поскольку то, что я хотел отфильтровать, не было доступно в% {REQUEST_URI}.Теперь у меня есть
RewriteCond %{QUERY_STRING} ^(get.*&contRep=T1&.*)&expiration.*$ RewriteRule ^(.*)$ $1?%1