為了保證域名統(tǒng)一,將訪問 http://www.xiuzhanyun.com、http://xiuzhanyun.com、https://www.xiuzhanyun.com 的域名都跳轉(zhuǎn)到 https://xiuzhanyun.com,IIS 可以進(jìn)行如下配置 (需要安裝 IIS UrlRewrite 模塊,代碼注釋是為了方便理解,部署到線上請刪除中文注釋):
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="HostNameRule1"> <match url="(.*)" /> <!--匹配所有條件--> <conditions logicalGrouping="MatchAny"> <!--當(dāng)不是使用https協(xié)議訪問的時候--> <add input="{HTTPS}" pattern="^OFF$" /> <!--并且訪問的host不是xiuzhanyun.com這種,例如www.xiuzhanyun.com--> <add input="{HTTP_HOST}" pattern="^xiuzhanyun\.com$" negate="true" /> </conditions> <!--跳轉(zhuǎn)到https--> <action type="Redirect" url="https://xiuzhanyun.com/{R:1}" /> </rule> <rule name="HTTPS redirect"> <match url="(.*)" /> <conditions> <!--當(dāng)使用HTTPS協(xié)議訪問--> <add input="{HTTPS}" pattern="^ON$" /> <!--當(dāng)訪問 https://www.xiuzhanyun.com的時候 --> <add input="{HTTP_HOST}" pattern="^xiuzhanyun\.com$" negate="true" /> </conditions> <!--跳轉(zhuǎn)到HTTPS--> <action type="Redirect" url="https://xiuzhanyun.com/{R:1}" redirectType="SeeOther" /> </rule> </rules> </rewrite> </system.webServer> </configuration> |
這里需要注意,想讓 https://www.xiuzhanyun.com 也可以跳轉(zhuǎn)到 https://xiuzhanyun.com,在申請 HTTPS 證書的時候,要把 www.xiuzhanyun.com 這種域名也給申請上,否則瀏覽器會解析不出 https://www.xiuzhanyun.com,因為在進(jìn)行 HTTPS 加密握手的時候就會認(rèn)證失敗。
chrome 調(diào)試中發(fā)現(xiàn) HTTPS 改動不生效
HTTPS 第一次連接域名的時候會和證書頒發(fā)機(jī)構(gòu)進(jìn)行 HTTPS 證書認(rèn)證,后續(xù)的連接會緩存起來,清緩存就好了。