最近遇到公家機關的客戶,希望將原本交由我們維護的 HTTP 網站,轉成 HTTPS 網站。因為上級機關要求所有網站都必須更改為 HTTPS 安全性較高的網站。
在完成相關 SSL 憑證採購、簽發,以及在他們網站主機的IIS設定好HTTPS網站後,這個部分可以參考另一篇「5個步驟完成 IIS7.5 安裝 SSL 憑證,讓你擁有 HTTPS 網站」文章。
他們又提出希望能「自動從原來的 HTTP 網址網站,轉到新的 HTTPS 網站」,OK!客戶就是老大,既然提出需求,就要使命必達!
首先,當然不能使用倒數一段時間後,再利用 JavaScript location.href 或 <meta http-equiv="refresh" content="0;url=https://yourname.com" /> 或程式 Response.Redirect 語法來轉向 HTTPS 做法。
因為,這不是客戶要的,它們希望的是:
使用者一上線就將連到 HTTP 舊網址的使用者轉到 HTTPS 新網址,不需將 HTTP 完整路徑對應成 HTTPS 版本。基於導向入口網頁不需完整對應的單純需求。
不用等待後轉址...
也不用轉到相對應舊網址的新網址...
有不少人建議使用 URL Rewrite 模組解決,但是這也不適用這個專案,因為這個專案可不是只有一個網站,原因就不在此多贅述了,總之一言難盡!
後來,終於找到一個去 IIS 7.5 直接設定,就可以達到從原本 HTTP 舊站自動轉址到 HTTPS 網站的目的,接下來,我們就將相關步驟貼上來,作為日後、以及大家有需求者的參考。
● 點選「開始」,再選取「管理工具」,接著選取「網際網路資訊服務 (IIS) 管理員」(IIS7.5 管理介面)。
● 點選「要指定的站台」並於中間視窗點選「SSL 設定」。
● 點選後,會開啟「SSL 設定」視窗首先在 IIS 管理員確認勾選「SSL設定 / 需要SSL」,如此連上 HTTP 將得到 HTTP 403.4 錯誤。
● 勾選後,在右側「動作」視窗,點選「套用」即可。
● 回到上一步的視窗,尋找「錯誤網頁」雙擊開啟。
● 回到上一步的視窗,尋找「錯誤網頁」雙擊開啟。
● 「錯誤網頁」設定視窗,點擊右方「動作」視窗的「新增」,「新增自訂錯誤網頁」如下列範例截圖,新增確定後,就會看新增一條錯誤狀態碼。
● 在「新增自訂錯誤網頁」指定 403.4 錯誤訊息網頁:
● 指定自訂錯誤網頁時使用「回應 302 重新導向」並輸入 https: 版首頁。
註:
搜尋網路相關文章,有人提到這方法還有一個小瑕疵,它傳回的是 302(暫時搬移) 不是 301(永久遷移),可能影響搜尋引擎判斷。QQ...
但是據說:
1. 如果原本 HTTP 網址就沒有相關網頁內容,不致有被 Cache 住,而造成遲遲沒更新的結果
2. 由於業界太多人把 302 當 301 用,Google 已經聰明到將 302 視為 301。:D
一併提供給大家參考,本專案剛好沒有就有內容網頁要對應,也不太需要考慮 SEO 需求,因此,不用煩惱,直接就應用了。