最近客戶一個網站升級至HTTPS協議訪問,但是為了用戶輸入,客戶要求當用戶輸入的是HTTP協議時,能自動定向到HTTPS,類似百度網站,當你輸入www.baidu.com并回車后,地址欄自動變成了https://www.baidu.com。
以下步驟簡要介紹了如何實現該功能:
1、下載并安裝MicrosoftURL重寫模塊
https://www.microsoft.com/zh-CN/download/details.aspx?id=7435
備注:根據不同的系統,不同的語言選擇。
我的機器是英文版的,所以以下截圖基本都為英文。
2、站點綁定以下兩種協議:

注意:默認的https端口號為443,因為我本機這個端口已經被利用,所以此處以449演示。
3、站點的SSL設置,確保“RequireSSL”未選中。

4、如果是ASP.NET站點,則直接在Web.config文件中添加以下配置節,作為<configuration>的子元素放在文件末尾即可。
<system.webServer>
<rewrite>
<rules>
<rulename="Redirecttohttps"stopProcessing="true">
<matchurl="(.*)"/>
<conditions>
<addinput="{HTTPS}"pattern="^OFF$"/>
<addinput="{HTTPS_HOST}"pattern="^(localhost)"negate="true"/>
</conditions>
<actiontype="Redirect"url="https://{HTTP_HOST}:449/{R:1}"redirectType="SeeOther"/>
</rule>
</rules>
</rewrite>
</system.webServer>
注意:當你使用默認HTTPS端口時,上面的端口號449就不需要了,直接為https://{HTTP_HOST}/{R:1}
上面的配置也可以直接在IIS中的URLWrite中手動添加,完成后大致如下:
