Https

IIS 將所有流量重寫為 SSL

  • August 1, 2019

我目前的配置是:

<rule name="Force HTTPS" enabled="true">
   <match url="(.*)" ignoreCase="false" />
   <conditions>
       <add input="{HTTPS}" pattern="off" />
   </conditions>
   <action 
       type="Redirect" 
       url="https://{HTTP_HOST}{R:1}" 
       appendQueryString="true" 
       redirectType="Permanent" />
</rule>

並且指向 http 的連結不起作用。但是當您輸入直接(主)網址時,上述規則確實有效。Google 上列出的連結不起作用;他們沒有,https 但規則應該重定向他們嗎?我不明白。

當我直接轉到圖像範例時:http://www.domain.com/img.jpg那不起作用。https 確實(手動輸入時)我做錯了什麼?

現在我找到了這個帶有範例的網站:http ://www.sslshopper.com/iis7-redirect-http-to-https.html

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

但這看起來並沒有太大的不同。為什麼我的配置不重定向Google連結和直接連結到圖像,但重定向主域。所有指向頁面的直接深層連結都不適用於 http。我得到一個server not found例外…

**編輯:**在 iis 管理器中未檢查需要 ssl

編輯2:

這似乎有效:

<rule name="Force HTTPS" stopProcessing="true">
   <match url="(.*)" />
   <conditions>
       <add input="{HTTPS}" pattern="off" />
   </conditions>
   <action 
       type="Redirect" 
       url="https://{HTTP_HOST}/{R:1}" 
       appendQueryString="true" 
       redirectType="Permanent" />
</rule>

但這不適用於: http: //www.domain.com/app_themes/themeName/img.jpg

http://www.domain.com/urlrewritten (用 global.asax 中的 maproutes 重寫)

<rule name="Force HTTPS" stopProcessing="true">
   <match url="(.*)" />
   <conditions>
       <add input="{HTTPS}" pattern="off" ignoreCase="true"/>
   </conditions>
   <action 
       type="Redirect" 
       url="https://{HTTP_HOST}/{R:1}" 
       appendQueryString="true" 
       redirectType="Permanent" />
</rule>

工作,也與映射路線的 url 重寫等。在 Internet Explorer、Firefox 和 chrome 中測試:)

引用自:https://serverfault.com/questions/281095