2014-09-25 2 views
0

현재 동일한 웹 응용 프로그램 (app1)에 2 개의 웹 서비스 (ws1 및 ws2)가 있습니다.URLrrite 규칙이 물음표를 캡처하지 않습니다.

이제 웹 서비스를 다른 웹 응용 프로그램과 분리하기로 결정했습니다. ws1은 app1에 있고 ws2는 app2에 있습니다. 그러나 우리는 호출하는 클라이언트 코드를 2 개의 앱을 인식하도록 변경하고 싶지 않습니다. 그래서 고객이 계속 전화/APP1/URL을

그래서 내가 APP2 어떤 WS2 요청을 다시 작성 APP1에서이 규칙을 설정 한 Tuckey Urlrewritefilter를 사용 : 예를 들어

<rule> 
    <from>^/(ws2.*)$</from> 
    <to type="redirect">/app2/$1</to> 
</rule> 

, /app1/ws2.get 가져 /app2/ws2.get로 리디렉션되었습니다. 괜찮아.

그러나/app1/ws2? wsdl에 대한 요청은/app2 /로 리디렉션됩니다.

정규 표현식에 문제가없는 것 같습니다. 독자적으로 테스트 했으므로 작동하지 않습니다.

물음표로 인해 캡처에 'ws2'만 포함되는 이유는 무엇입니까?

답변

0

물음표 뒤의 모든 내용이 URL이 아닌 쿼리 문자열의 일부로 해석되므로 원본에서 캡처되지 않는다고 생각합니다. 그렇다면 다음과 같이 리디렉션에 검색어 문자열을 추가 할 수 있습니다.

<rule> 
    <from>^/ws2$</from> 
    <to type="redirect">/app2/?%{query-string}</to> 
</rule> 
관련 문제