2013-07-28 3 views
0

언어 식별자가 URL 경로에 있음을 나타내는 규칙을 얻으려고합니다. 언어가 지정되지 않은 경우 URL을 강제로 en 버전으로 변경하려고합니다. 예를 들어 :IIS URL 다시 쓰기 기본 언어 경로

www.domain.com/page.aspx 여기

는 우리가 지금까지 가지고있는 규칙의 www.domain.com/en/page.aspx로 리디렉션해야하지만, 리디렉션에서 끝나는 유지 고리.

<rule name="Default Language" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions>     
      <add input="{REQUEST_URI}" pattern="^/(en|es|ph)/" negate="true" ignoreCase="true" /> 
     </conditions> 
     <action type="Redirect" url="/en/{R:1}" redirectType="Permanent" /> 
    </rule> 

어디서 잘못 될지 생각해보십시오. URL이 en/로 시작하면 그것은 확인하고하지 않을 경우, 요청 된 경로 앞에 en/을 추가합니다

<rule name="Default Language" stopProcessing="true"> 
    <match url="^en/" negate="true" /> 
    <action type="Redirect" url="/en/{R:0}" redirectType="Permanent" /> 
</rule> 

:

답변

1
은 당신의 규칙을 변경

.

역 참조가 /en/{R:1}으로 전송 되었기 때문에 아무 것도/모든 것과 일치하므로 (.*)과 일치하므로 사용자가 무한 리디렉션을 사용했습니다.