2011-10-16 3 views
2

www가 아닌 ​​www로 리디렉션 할 수있는 IIS 용 다시 쓰기 규칙 확장을 사용하여 IIS7에서 301 리디렉션을 만드는 방법 (web.config에 쓰기) -하지만 (. *)을 사용하고 싶지 않은 경우 URL 재 작성자가 DNS와 같은 URL을 무시하도록하여 Amazon Load Balancer에서 작동시킬 수 있습니다. 이를 사용하지 않으면 Amazon Load Balancer가 리디렉션되고 200OK를 얻는 대신 301을 얻게되므로 상태 확인 파일을 읽을 수 없습니다.Amazon Elastic Load Balancer에서 www가 아닌 ​​www로 리디렉션되지 않음

그래서 실제로 mydomain을 포함하는 URL과 일치하는 규칙이 필요합니다 .com 또는 당연히 시작되는 프로그램이므로 루프되지 않습니다.

현재 규칙

잘되지 않습니다 :

<rewrite> 
    <rules> 
    <rule name="CanonicalHostNameRule1"> 
     <match url="(.*)" /> 
     <conditions> 
      <add input="{HTTP_HOST}" pattern="^www\.mydomain\.com$" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="http://www.mydomain.com/{R:1}" /> 
    </rule> 
</rules> 
</rewrite> 

이 www.mydomain.com에 dns.amzn.com 같은 URL을 리디렉션합니다 - 나는 IIS7에 그것을 시도했습니다.

당신이 솔루션을 함께 제공

답변

1

가 한 더 나은 솔루션 ..

내가 ELB (사용자 에이전트)와 일치하지 않는 {HTTP_USER_AGENT}를 사용하여 조건을 추가 필요합니다. 이로 인해 ELB에 대한 규칙 실행이 중지되었지만 지금은 테스트 중입니다.

환호

또한

추가 된이 :

<rule name="Redirect to HTTPS" enabled="true" stopProcessing="true"> 
<match url="(.*)" /> 
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
<add input="{HTTPS}" pattern="^OFF$" /> 
<add input="{HTTP_USER_AGENT}" pattern="ELB-HealthChecker" negate="true" /> 
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="HTTPS" negate="true" />       
</conditions> 
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> 
</rule> 

당신이 원하는 비트는

<add input="{HTTP_USER_AGENT}" pattern="ELB-HealthChecker" negate="true" /> 
입니다
관련 문제