내가 지금처럼 IISS URLRewriter를 사용하여 내 웹 응용 프로그램 IN- 및 아웃 바운드 내부 URL을 작성하는 노력하고있어,IIS URL 재 작성 아웃 바운드 PostBackUrls
^([A-Za-z0-9]+)([\?A-Za-z0-9=&]+)?$
많은 :
www.domain.net/SomeSite.aspx
www.domain.net/SomeSite
에 인바운드이 정규식을 사용하여 놀랍게도,이 사실이 재 작성 작업 사용 등 www.domain.net/SomeSite.aspx?abc=1
=>www.domain.net/SomeSite?abc=1
같은 URL에 대한 또한, 작동 : {R:1}.aspx?{R:2}
을하지만 사용자가 실제로를 볼 수 있도록 지금, 아웃 바운드, 나는 같은 효과를 가지고 싶습니다210 내 웹 응용 프로그램이 ~/SomeSite.aspx를 내부적으로 참조 할 수 있습니다.
나는 그것에 대해 다음과 같은 정규식 사용
^([A-Za-z0-9]+).aspx([\?A-Za-z0-9=&#]+)?$
을 그래서 같은 URL 재 작성 :이 슬프게도, 그것은 예를 들어, 위해하지 않는 작품, 일반적으로 /{R:1}{R:2}
을 Response.Redirect
은 CodeBehind에서 실행되며 PostBackUrl
s는 asp:Button
에서 작동하지 않습니다.
누구든지이 아웃 바운드 규칙을 다시 작성하는 방법을 알고 있으므로 참조 된 방법에 관계없이 모든 링크를 실제로 잡을 수 있습니까?
감사합니다,
데니스
편집 :
몇 가지 예를 내가 생각했던 내가 확실히 밝혀지지 않았다 가정 이후 :
사용자가 브라우저에서 www.domain.com/Login
를 입력, 인바운드 규칙 catch하고 www.domain.com/Login.aspx
로 리디렉션되고 주소 표시 줄에 /Login
이 표시되면이 동작이 정상입니다.
그러나 PostBackUrl이 포함 된 ASP : 버튼 Login.aspx
을 클릭하면 주소 표시 줄에 Login
대신 주소 Login.aspx
이 표시됩니다. 정확하게이 동작을 얻으려면 어떻게해야합니까?
왜 Post.Upx 대신 PostBackUrl을/Login으로 변경하지 않습니까? 나는 생각한다 * 적어도 정상적인 앵커 태그를 처리하는 방법이다. (아웃 바운드를 저장하면된다.) – ianbailey
그래, 그럴 수도 있겠지만, 그렇게해야 할 때부터 놀랍도록 불편할 것이다. 내 개발 서버 대신 IIS에서 디버깅. –