Quantcast
Channel: 黑暗執行緒
Viewing all articles
Browse latest Browse all 2452

IIS HTTP 強制轉 HTTPS 簡易做法

$
0
0

再遇到老題目:在 IIS 上如何將 HTTP 請求強制導向 HTTPS?

之前試過顯示說明網頁,倒數後透過 JavaScript location.href 轉向 HTTPS 的做法 - 設計賓至如歸的HTTPS強制導向網頁

但這有個缺點,如果不需要顯示導向提示,則先 HTTP 200 送回正常網頁再由瀏覽器另外發出請求連上 HTTPS 多了一個往返,不如直接回傳 HTTP 301/302 導向有效率,而連上 HTTP 時回應 HTTP 200 可能會被搜尋引擎誤判為有效網址。

網路建議的解法多是使用 URL Rewrite 模組解決,例如保哥強迫網站轉向到 HTTPS 加密安全連線 ( IIS URL Rewrite )一文提到的做法。

之前的情境都是原本 HTTP 舊站啟用 HTTPS 後希望大家改連加密版,這回的狀況是網站一上線就只有 HTTPS,只需將誤連 HTTP 的使用者導向 HTTPS,不需將 HTTP 完整路徑對應成 HTTPS 版本。基於導向入口網頁不需完整對應的單純需求,我找到一個不用安裝 URL Rewrite 的簡便做法。

首先在 IIS 管理員確認勾選「SSL設定 / 需要SSL」,如此連上 HTTP 將得到 HTTP 403.4 錯誤。

接著在「錯誤網頁」指定 403.4 錯誤訊息網頁:

指定自訂錯誤網頁時使用「回應 302 重新導向」並輸入 https: 版首頁。

以上設定也可透過 web.config 加入:

<system.webServer>
<httpErrors>
<errorstatusCode="403"subStatusCode="4"
path="https://www.my-site.com.tw/"responseMode="Redirect"/>
</httpErrors>
</system.webServer>

Viewing all articles
Browse latest Browse all 2452

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>