2012-07-03 2 views
0

내가 할 수있는 말 : ?a=1&b=r%26d aspx 페이지에 잘. &은 구분 기호로 예약되어 있으므로 두 번째 매개 변수의 &%26으로 인코딩됩니다.친숙한 URL의 앰퍼샌드

URL 재 작성 모듈 2.0 2008 R2에 IIS7.5 용을 다운로드하여 설치했습니다.

나는 간단한 규칙 : ^([^/]+)/([^/]+)/?$을 쓰고 URL : Default.aspx?a={R:1}&b={R:2}을 쓰고 쓴다.

그래서, 1/a b 같은 일이 ?a=1&b=a b에 잘 해결하지만, 뭔가 같은 1/a%26b 또는 1/a&b?a=1&b=a에 운동은 모든 실행시 그 % 26 & 후 차단 보인다. 그러나 서버 관리자에서 재 작성을 테스트 할 수 있으며 GUI의 테스트 도구에서 아무 것도 끝나지 않습니다.

내가 무엇을했는지에 대해 잘 모르는 것은 꽤 단순 해 보였습니다. 따라서 확실한 것은 앰퍼샌드가있는 친숙한 URL (또는 필요한 경우 % 26)을 가지고 URL 재 작성 2.0 모듈이 전체 매개 변수를 전달할 수있는 방법은 무엇입니까?

답변

1

시간이 좀 걸렸지 만 답변을 찾았습니다. 전달되기 전에 URL이 디코딩되므로 추가 변수가 만들어집니다.

어쨌든 해결책은 실제로 매우 간단합니다.

Default.aspx?a={UrlEncode{R:1}}&b={R:2}

를 UrlEncode 기능은 인코딩됩니다 {R : 1} 올바르게 내가 할하는 데 필요한 모든이에게 재 작성 URL 규칙을 조정했다 끈다.

+0

위 표현식에서 UrlEncode 다음에 콜론이 누락 된 것처럼 보입니다. 그렇지 않으면 위대한 작품. –