2017-11-18 13 views
0

http를 처리하고 암호화하도록 IIS에 URL 다시 쓰기를 설정하려고합니다. 내 목표는 될 것 http://www.example.com/whatever/login.aspx?username=blabla 있도록 https://example.comURL http를 https로 다시 작성하고 암호화하자

2) 모든 하위 페이지와 쿼리 문자열이 유지되어야로) (301 리디렉션해야 http://example.com, http://www.example.comhttps://www.example.com에 다음

1) 모든 트래픽을 https://example.com/whatever/login.aspx?username=blabla

3) http://example.com/.well-known/acme-challenge/ * 및 http://www.example.com/.well-known/acme-challenge/ * (그것은 내가 시도처럼 여기서 "*"

을 리디렉션해서는 안됩니다 어떤 하위 페이지와 쿼리 문자열) 일 수있다 모든게하지만 난에 대한 모든 요청 작동시키지 못한다.

답변

2

두 가지 규칙을 사용하면됩니다. 첫 번째는 https로 리디렉션되고 두 번째 도메인은 도메인을 변경합니다. "부정한"속성이있는 조건으로 .well-known/acme-challenge/을 추가해야합니다.

<rule name="CanonicalHostNameRule"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAll">> 
     <add input="{HTTP_HOST}" pattern="^www.example\.com$" /> 
     <add input="{REQUEST_URI}" pattern="^/.well-known/acme-challenge" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://example.com/{R:1}" /> 
</rule> 
<rule name="Redirect to https"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{HTTPS}" pattern="off" /> 
     <add input="{REQUEST_URI}" pattern="^/.well-known/acme-challenge" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> 
</rule> 
+0

놀랍습니다. - 저는 지금이 영원히 싸우고 있습니다. :) – Anders