[htaccess]如何強制把HTTP 導向HTTPS,打造更安全的加密網站
文章推薦指數: 80 %
第二行就是強迫轉址的敘述:RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]。
這段敘述主要是說,所有 ...
首頁[how]其實可以這樣做[App]應用應用[info]或許有興趣知道
iOSMacOSHTML5CSS3CloudAffinityPhoto,Photoshop
amigo!
cassandre
chiron
marmalade
sweetdumpling
Tahini
‹‹如何刪除Google搜尋紀錄,或是查詢所有在Google上的歷史活動呢?Home››[how]其實可以這樣做
[htaccess]如何強制把HTTP導向HTTPS,打造更安全的加密網站
使用.htaccess來強迫讓HTTP轉為HTTPS
網路不是一個很安全的環境,這點大家應該都非常清楚了。
在過去,一個加密網站(以HTTPS為首的網址)通常都是商業網站或是大型網站為主,
像是有提供線上交易的電子商務類網站,或是有會員專區的那些服務型網站,
雖然近年來很多網路專家一直呼籲網路管理員或網站站長們,
希望大家盡可能的將自家管理的網站,從HTTP升級到HTTPS,成效其實普普。
倒是Google一出手,先是在他們自家瀏覽器Chrome的網址列上,直接大剌剌的告訴全世界,你的網站『不安全』,
接著又公布說那些沒有加密為HTTPS的網站搜尋排名將會調降,
就這樣很快的,
升級為HTTPS,就成了所有網站管理員們的集體大作戰XD
當然了,我們五分鐘閱讀的網站也不例外的改為了HTTPS(https://km.nicetypo.com)。
用.htaccess檔案強制將HTTP導向HTTPS
在整個從HTTP轉換到HTTPS網站的過程中,最重要的一項工作,當屬如何強制把每一個HTTP來的流量,導向到HTTPS的版本,這個強制HTTP轉HTTPS任務絕對可以說整組計畫裡的重中之重。
特別是已經服務上線有一段時間的網站,
不管是搜尋進來的流量、
還是其他網站的逆向連結(Referrallink)連過來的流量、
即便原本網站上不同文章之間的內部連結,都還是維持舊的HTTP的版本。
如果不強制把這些流量都導向到新的HTTPS網頁,
那麼不僅僅升級無效,還有可能因而產生更多的錯誤。
更更糟糕的還有,
如果沒有這麼做的話,那麼就等同於你的網站很多的頁面都同時存在兩個版本:一個是HTTP版本,另一個則是HTTPS的版本,因為就網址而言,多了一個s,就是一個新的網址,那麼一個網站有很多的重複頁面,對於SEO來說可不是見好事呢!
這就是為什麼要反覆說強制轉址是這麼的重要了。
下面的範例就是如何使用.htaccess的檔案,來強制把HTTP導向HTTPS:
RewriteEngineOn
RewriteCond%{HTTPS}off
RewriteRule(.*)https://%{HTTP_HOST}%{REQUEST_URI}[R=301,L]
上面這個程式碼第一行:RewriteCond%{HTTPS}off,
就是先對主機宣告說凡是進來的流量,是以HTTPS為首的,就不管他,只處理不是HTTPS開頭的連線要求。
第二行就是強迫轉址的敘述:RewriteRule(.*)https://%{HTTP_HOST}%{REQUEST_URI}[R=301,L]。
這段敘述主要是說,所有的連線要求(當然已經扣掉了之前宣告過的HTTPS流量),都把要求的網址重寫一次,將HTTP改為HTTPS。
最後端的[R=301,L],則是說轉址(R)是以301(永久轉換)的模式來轉換。
L則是指如果之前的動作完成了,就到這裡結束,後面還有其他什麼程式碼的就不關我的事了。
同時大家也可以參考我們之前寫的另一篇關於轉址的教學文章:
[htaccess]把www的網址永遠轉址到non-www。
只要把上面的文字,複製到網站根目錄的.htaccess裡面就可以了(記得第一段RewriteEngineOn如果已經有的話,就不用重複貼入)。
HTTP轉向HTTPS的後續檢查工作清單
除了上面的強制轉址以外,升級為HTTPS之後,還有很多後續的動作也別輕忽喔。
因為光光是網址改了還不算完全的大功告成,
後續還有一些雜七雜八的小動作要做,不然引發的麻煩還不少呢!
從HTTP升級HTTPS之後,同步要更新的程序,
我們在下面先整理了一個精簡版的工作檢查清單跟大家分享:強制用.htaccess檔案來把每一個HTTP來的流量,導向到HTTPS的版本(這個之前的段落已經做過了)。
將全站所有外掛的如Javascript,CSS等外部連結資源,也要全部更新為HTTPS的版本(不然會一直跳出錯誤)。
網頁內文中,如果原本有寫過自家舊的HTTP連結網址,最好也要全部更新為HTTPS的版本。
在這個部分,如果大家使用的資料庫是MySQL的話,那麼可以參考我們之前有寫過的一篇:如何以MySQL內建功能來取代欄位中特定字串,在這篇文章中就有分享快速更新內文中所有連結的語法。
如果有登錄使用『Google網站管理員(SearchConsole)』的朋友,要將舊的網站移除,重新加入新的HTTPS的版本。
延續上一項的清單,在SearchConsole中原本提交的Sitemap檔案,也先移除,重新提交一份新版的Sitemap,不然舊的Sitemap裡面還是舊的HTTP版本的連結。
觀察一週,看看系統的ErrorLog有沒有任何相關的錯誤(很容易有500內部錯誤或是404找不到網頁)。
有計畫要升級HTTPS的朋友們,希望這次的分享對大家有幫助^^
一起試試看吧!我們也有臉書專頁了,歡迎大家按讚加入喔:@5min.reading
httpswebhtaccess
延伸閱讀:更多相關的主題文章[htaccess]2種禁止網站圖片被別人外連盜圖的方法,同時又不會檔掉Google圖片的搜尋[RWD]如何使用Mac上的Safari開發者工具,偵錯或微調iPhone行動版的網頁[CSS]網頁用的尺寸單位:PX跟EM怎麼區分呀?等等,還有一個REM...[CSS3:Word-Break]用CSS來設置中英文的文字斷行樣式[MySQLReplace]如何取代文字字串,讓MySQL資料庫欄位中特定字串變成新的文字[CSS]如何讓別人無法列印你的網頁,簡單一行CSS搞定[RWD]用Javascript來偵測是否為行動裝置最簡單的方法[CSS]Clippy:快速幫你製作CSSClip-Path圖片變形的雲端工具如何快速消除錯誤訊息:PHPDeprecated:Themysqlextensionisdeprecatedandwillberemovedinthefuture:usemysqliorPDOinstead[HTML5]Uploadify無法上傳,問題可能出在FlashPlayer
‹‹如何刪除Google搜尋紀錄,或是查詢所有在Google上的歷史活動呢?
延伸文章資訊
- 1如何做到輸入IP地址自動轉址到https的domain name - iT 邦幫忙
如題,請問各位大佬們,小弟我該怎麼設定DNS紀錄,才能在用戶輸入IP地址時重新導向至https的網址.
- 2如何設定免費SSL - 智邦小幫手
自動轉址至https設定方式. 可以讓輸入的網址從http:// 自動轉至https:// 的網頁的設定方式. 「平價主機、平價商務、Linux進階主機、自由軟體主機、WordPress主機 ...
- 3如何將網址從http轉為https ?!
當我們網站已安裝了SSL後,要如何把網址更改成https? 若不想一個個慢慢做修改,可以使用以下方式做更改。 ... 兩種寫法都一樣是指”若網址不是https則apache就會把不是https ...
- 4HTTPS 網頁轉址 - 哈部落
轉址服務就是使用者輸入一個網址,會自動轉跳到另外一個。 ... 您將會需要安裝SSL 憑證並且設定HTTPS 連線,瀏覽器才能使用加密連線。
- 5[htaccess]如何強制把HTTP 導向HTTPS,打造更安全的加密網站
第二行就是強迫轉址的敘述:RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]。 這段敘述主要是說,所有 ...