如何強制把 HTTP 導向 HTTPS,打造更安全的加密網站

HTTP to HTTPSPhoto by Ilya Pavlov on Unsplash
網路不是一個很安全的環境,這點大家應該都非常清楚了,
在過去,一個加密網站(以HTTPS為首的網址)通常都是商業網站或是大型網站為主,
像是有提供線上交易的電子商務類網站,或是有會員專區的那些服務型網站,
雖然近年來很多網路專家一直呼籲網路管理員或網站站長們,
希望大家盡可能的將自家管理的網站,從 HTTP 升級到 HTTPS,成效其實普普。
倒是 Google 一出手,先是在他們自家瀏覽器 Chrome 的網址列上,直接大剌剌的告訴全世界,你的網站『不安全』,
接著又公布說那些沒有加密為 HTTPS 的網站搜尋排名將會調降,
就這樣很快的,
升級為 HTTPS,就成了所有網站管理員們的集體大作戰 XD
 
當然了,我們五分鐘閱讀的網站也不例外的改為了 HTTPS(https://km.nicetypo.com)。
 

HTTP 轉向 HTTPS 的後續檢查工作清單


升級為 HTTPS 之後,可別輕忽後續的動作喔。
因為光光是網址改了還不算完全的大功告成,
後續還有一些雜七雜八的小動作要做,不然引發的麻煩還不少呢!
 
從 HTTP 升級 HTTPS 之後,同步要更新的程序,
我們在下面先整理了一個精簡版的工作檢查清單跟大家分享:
  • 強制把每一個 HTTP 來的流量,導向到 HTTPS 的版本(.htaccess)。
     
  • 將全站所有外掛的如Javascript, CSS 等外部連結資源,也要全部更新為 HTTPS 的版本(不然會一直跳出錯誤)。
     
  • 網頁內文中,如果原本有寫過自家舊的 HTTP 連結網址,最好也要全部更新為 HTTPS 的版本。
    在這個部分,如果大家使用的資料庫是 MySQL的話,那麼可以參考我們之前有寫過的一篇:如何以 MySQL 內建功能來取代欄位中特定字串,在這篇文章中就有分享快速更新內文中所有連結的語法。
     
  • 如果有登錄使用『Google 網站管理員(Search Console)』的朋友,要將舊的網站移除,重新加入新的 HTTPS的版本。
     
  • 延續上一項的清單,在 Search Console 中原本提交的 Sitemap 檔案,也先移除,重新提交一份新版的Sitemap,不然舊的Sitemap裡面還是舊的 HTTP 版本的連結。
     
  • 觀察一週,看看系統的 Error Log 有沒有任何相關的錯誤(很容易有 500 內部錯誤或是 404 找不到網頁)。

重中之重,強制將 HTTP 導向 HTTPS


在上面的工作清單中,
第一項:強制把每一個 HTTP 來的流量,導向到 HTTPS 的版本
可以說是重中之重,特別是已經服務上線有一段時間的網站,
不管是搜尋進來的流量,還是其他網站的逆向連結(Backlink)連過來的流量,基本上都還是舊的 HTTP 的版本,
如果不強制把這些流量都導向到新的 HTTPS 網頁,
那麼不僅僅升級無效,還有可能因而產生更多的錯誤。
 
下面的範例就是如何使用 .htaccess 的檔案,來強制把 HTTP 導向 HTTPS:
同時大家也可以參考我們之前寫的另一篇關於轉址的教學文章
[htaccess]把www的網址永遠轉址到non-www

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

只要把上面的文字,複製到網站根目錄的 .htaccess 裡面就可以了(記得第一段 RewriteEngine On如果已經有的話,就不用重複貼入)。
 
有計畫要升級 HTTPS 的朋友們,希望這次的分享對大家有幫助 ^^
一起試試看吧!

Readers comment