2011-03-24 3 views
1

IIRF에서 IIS URL 다시 쓰기로 규칙을 가져 왔고 대부분이 정상적으로 작동하는 것 같습니다. 나는 그저 일부 URL에 백분율 기호가 있음을 알아 차렸다. (나쁜 인바운드 링크를 백분율로 인코딩하려고 시도했다. 정규 표현식은 퍼센트가 거기에있을 때 작동하지 않는 것처럼 보입니다. 그래서 나는 그것을 해석하려고 시도하는 것이 명령 또는 무엇인가라고 가정합니다. 이것에 대한 문서를 찾을 수 없습니까?iis 7.5 URL 다시 쓰기 - 퍼센트 '%'기호를 처리하지 않습니다.

+1

: IIS7에서 IIRF를 사용할 수 있습니다. – Cheeso

+0

Cheeso, 나는 아직도있다 :)하지만 일부 사이트는 내장 된 것을 사용해야한다. –

+0

참조 serverfault : http://serverfault.com/questions/257680/properly-handle-iis-request-with-percent-sign-in-url –

답변

0

다시 작성 규칙이 이미 URL 인코딩을 취소했기 때문에 더 이상 % 3E이 (가) '<'이 아니므로 대신 % 3E 대신>를 사용합니다. 자, URL을 고치 러 가자. 아.

편집 : 또한

(사용자 인터페이스 편집기를 사용하여 대), 당신은 & LT를 사용해야합니다 당신이 손 편집의 Web.config를하는 경우; 기호는 <입니다. 혼동을 피하기 위해 UI를 사용하는 것이 가장 좋습니다.

1

필자의 경우 대답은 받아 들일 수 없었지만 재 작성 규칙을 설정하는 다른 방법을 발견했습니다. 그러면 301 리디렉션이 수행됩니다.

요청 된 URL :http://www.shuttercontractor.com/m/vinyl-%E2%80%8Bshutters.aspx
대상 URL :http://www.shuttercontractor.com/m/vinyl-shutters.aspx

<rule name="301 Redirect to vinyl shutters category" stopProcessing="true"> 
    <match url="." ignoreCase="false" /> 
    <action type="Redirect" redirectType="Permanent" url="m/vinyl-shutters.aspx" /> 
    <conditions> 
     <add input="{UNENCODED_URL}" pattern="m/vinyl-%[Ee]2%80%8[Bb]shutters\.aspx" ignoreCase="false" /> 
    </conditions> 
</rule> 

기본적으로 일치하는 모든 URL에서 작동합니다, 우리는 패턴이 일치 보장하기 위해 UNENCODED_URL 서버 변수와 조건을 사용하여 리디렉션하기 전에.