2013-03-24 2 views
0

트래픽을 /public으로 리디렉션하는 규칙이 있지만 "리디렉션 루프"오류가 발생합니다. 어떤 제안? 귀하의 경우 Zend Framework IIS 리디렉션

귀하의 리디렉션에

  1. url="(.*)" => 항상 참
  2. {HTTP_HOST} 경기 ^test.example\.com$ => 항상 true : 규칙이 때 트리거되기 때문에

    <rule name="Redirect to /public" stopProcessing="true"> 
        <conditions logicalGrouping="MatchAll"> 
         <add input="{HTTP_HOST}" pattern="^test.example\.com$" ignoreCase="false" /> 
        </conditions> 
        <action type="Redirect" url="http://test.example.com/{R:1}" /> 
        <match url="(.*)" ignoreCase="false" /> 
    </rule> 
    
+0

내가 익숙하지 해요,하지만이 도움이 될 수 있습니다 -> http://forums.iis.net/t/1181128.aspx/1 :

당신은 당신의 conditions도 유지할 수 있습니다 – Crisp

답변

1

당신은 루프가 규칙은 웹 사이트에 액세스하는 모든 URL에 의해 실행됩니다.

<rule name="Redirect to /public" stopProcessing="true"> 
    <match url="^public/(.*)" negate="true" /> 
    <action type="Redirect" url="public/{R:1}" /> 
</rule> 

그것을 :
그런 다음 다시 규칙과 일치하는 것이다 URL을 귀하의 웹 사이트로 리디렉션 ...

당신이 /public 모든 요청을 재 지정하려면, 다음과 같은 규칙을 사용할 수 있습니다 URL이 public/으로 시작하지 않는지 확인합니다. 이 경우 public/UrlRequested으로 리디렉션됩니다. IIS 리디렉션에

<rule name="Redirect to /public" stopProcessing="true"> 
    <match url="^public/(.*)" negate="true" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{HTTP_HOST}" pattern="^test.example\.com$" ignoreCase="false" /> 
    </conditions> 
    <action type="Redirect" url="public/{R:1}" /> 
</rule> 
+0

감사합니다. 그건 의미가 있습니다. – aserwin