2017-02-14 47 views

回答

0
This ended up working for me: 

<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>   
    </rewrite> 
0
<rewrite> 
     <rules> 
     <rule name="Non www HTTP to HTTPS" patternSyntax="ECMAScript" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTPS}" pattern="off" /> 
        <add input="{HTTP_HOST}" pattern="^www" negate="true" /> 
       </conditions> 
       <action type="Redirect" url="https://www.{HTTP_HOST}{REQUEST_URI}" /> 
      </rule> 
      <rule name="Non www HTTPS to www HTTPS" patternSyntax="ECMAScript" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTPS}" pattern="On" /> 
        <add input="{HTTP_HOST}" pattern="^www" negate="true" /> 
       </conditions> 
       <action type="Redirect" url="https://www.{HTTP_HOST}{REQUEST_URI}" /> 
      </rule> 
      <rule name="HTTP to HTTPS" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTPS}" pattern="off" /> 
        <add input="{HTTP_HOST}" pattern="www*" /> 
       </conditions> 
       <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" /> 
      </rule> 
     </rules> 
    </rewrite> 
+0

我仍然有一個問題。 如果你去這裏: https://www.skaljakke.dk/skaljakker-damer 這一切似乎都很好,但如果你刪除了「www。」它會失敗。你有什麼建議嗎? –

+0

@ user3305839您是否擁有包含www的SSL證書?和只是domain.com? Web服務器必須能夠首先進行握手,然後進行重定向。如果您沒有涵蓋兩者的證書,瀏覽器會檢測到安全性異常。 – Josh

0

@Josh:您的回答適用於第一次請求。 它將以「https://www」結束,非常完美。 但是,如果我然後刪除「www。」從地址,它會失敗,像下面的圖片。

Resulting page in Firefox