2012-01-17 3 views
13

트래픽을 HTTPS로 자동 전송하는 web.config 파일이 있습니다. 그러나 누군가 MyDomain.com에 들어가면 https://mydomain.com으로 가고 www.mydomain.com에 들어가면 https://www.mydomain.com으로 갈 것입니다.Web.config. 모든 트래픽을 www.my로 리디렉션 ... rules 요소 사용.

모든 트래픽을 https://www.mydomain.com (으)로 바꾸기를 원합니다. web.config의 rules 요소를 사용하여이 작업을 수행 할 수 있습니까? 내 파일은 현재 다음과 같습니다

<rewrite> 
    <rules> 
     <rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
      </conditions> 
      <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" /> 
     </rule> 
    </rules> 

+0

누구? 또는 IIS GUI를 사용하는 방법에 대한 조언도 훌륭합니다. – Paul

답변

23

법칙 규칙의

<rule name="Redirect to www subdomain"> 

    <match url=".*" /> 

    <conditions logicalGrouping="MatchAll"> 
    <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" negate="true" /> 
    <add input="{SERVER_PROTOCOL}" pattern="^(.*)(/.*)?$"/> 
    </conditions> 

    <action type="Redirect" url="{C:1}://www.{HTTP_HOST}/{R:0}" redirectType="Permanent"/> 

</rule> 

설명

  • <match /> 누구의 경로와 쿼리 문자열 일치하는 경우에만 요청에 규칙을 제한 주어진 패턴. 여기서는 도메인을 기반으로 리디렉션 할 것이므로 모든 경로와 쿼리 문자열을 일치 시키려합니다.

  • <conditions /> 주어진 조건을 충족시키는 일치 요청에만 규칙을 제한합니다. 첫 번째 조건은 도메인이 이미 "www"로 시작하는 요청을 제외합니다. 두 번째 조건은 {C : 1} 역 참조를위한 것이므로 아무것도 필터링하지 않아야합니다.

  • <action> 앞에 "www."가 붙습니다. 도메인으로 이동 한 다음 리디렉션합니다.

변수

  • {R:0}<match \> 태그에서 전체 경기에 대한 역 참조입니다. 역 참조에는 경로와 쿼리 문자열 만 포함되어야합니다. <match \>이 항상 일치합니다.

  • {C:1}은 최종 조건에서 첫 번째 일치 그룹에 대한 역 참조입니다. 이것은 {SERVER_PROTOCOL} 변수에 "/"까지의 모든 것을 포함해야합니다.

  • {HTTP_HOST}은 요청 된 도메인을 포함하는 서버 변수입니다. 전체 목록은 here을 참조하십시오.

  • {SERVER_PROTOCOL} 다른 서버 변수. 형식은 "{protocol}/{version number}"이어야합니다.

기타 옵션

  • <action redirectType> 발견, 임시 또는 SeeOther 될 수 있습니다. (자세한 내용은 here을 참조하십시오.)

  • <conditions logicalGrouping>은 MatchAll 또는 MatchAny가 될 수 있습니다.

더 완전한 설명은 결론

here를 참조하십시오.

+0

해당 규칙을 추가하거나 포스터를 교체합니까? –

+0

정말 고마워요! 나는 이것을 유지할 수있는 방법을 묻습니다, 챔피언 원숭이처럼 리디렉션! 도메인이 포함 된 경우 리다이렉트하지 않습니다 : "bypdm.com"은 우리가 클라이언트를 보여주기 위해 사용하는 임시 URL이며 IIS에 www 설정이 없습니까? – Tim

+3

301 redirectType = "Permanent"를 301 리디렉션에 사용 하시겠습니까? – ajbeaven

관련 문제