2012-09-21 9 views
2

ASP.NET 4 환경 (Windows 7의 IIS 7.5)에서 호스팅되는 WCF 웹 서비스가 있고 URL 재 작성/리디렉션을 사용하고 싶습니다. 필자가이 작업을 수행해야하는 이유는 매개 변수를 삽입하기 위해 일부 모바일 장치 코드를 변경할 수 없기 때문입니다.IIS 7 URL URL 경로를 기반으로 리디렉션

http://server.test.com/VirtualDirectory/theOrganization/RequestService.svc/REST/GetIssueTypes

실제 URL은 다음과 같습니다 : 여기

내가 원하는 URL입니다

http://server.test.com/VirtualDirectory/RequestService.svc/REST/GetIssueTypes?organization=theOrganization

공지 사항 나는 theOrganization을 제거하는 방법과 추가 된 i t를 리디렉션의 쿼리 문자열로 보냅니다.

<rule name="test" stopProcessing="true"> 
    <match url="(.+\.?)/(.+)/RequestService.svc/(.+)" /> 
    <action type="Redirect" url="{R:1}/RequestService.svc/{R:3}?organization={R:2}" 
    redirectType="Permanent" /> 
</rule> 

나는 그것을 쓰기 규칙의 조금 이상한 것을 알고있다. 일치하는 올바른 정규 표현식을 가지고 있다고 생각합니다. IIS 관리자에서 URL 다시 쓰기 테스터의 식을 실행하면 원하는 내용과 일치하는 것처럼 보입니다. 또한 IIS URL Rewrite가 설치되어 있으며 간단한 규칙을 작성하여 작동합니다.

그러나 브라우저를 사용하여 시도 할 때 404로 리디렉션되지 않고 결과가 나타나지 않습니다. IIS 재 작성 전문가가 전화를 걸 수 있기를 바랬습니다.

감사합니다.

답변

0

iis 7.5 및 url rewrite 2.0을 사용하는 테스트 서버에서 규칙을 테스트했지만 규칙이 작동하지만 정규 표현식이 원하는 URL과 실제 URL을 모두 일치시킵니다.

그래서 당신은 이중 리디렉션으로 끝낼

난 당신이 원하는 생각이

(. +.?)/VirtualDirectory /(.+)/ RequestService.svc /처럼 패턴 일 (+)

희망이 도움이됩니다.