in , ,

為何設定https需要mod_write,且如何在cPanel控制台上開啟?並設定自動把網址由http 導到 SSL的https?

台灣主機空間如何讓沒有SSL的要求自動導到有SSL

網址連結使用https已是現在不可少的必要條件,現在不少程式會需要開啟 mod_rewrite 功能,且又例如中文免費架站程式WordPress也常常會用到mod_rewrite,而mod_rewrite是apache 一個模組,多用來網址改寫及隱藏檔案路徑…等,功能很是強大,該說說明針對mod_rewrite功能作簡介,及如何於主機空間的cPanel控制台開啟和實務中常見發生的狀況作提醒。

如何於主機空間cPanel控制台開啟mod_rewrite?

1.至cPanel控制台→檔案管理員→public_html資料夾(或是使用子網址則至放置網頁程式的資料夾裡)→找到.htaccess檔案,於該.htaccess裡加入

RewriteEngine on

便可以開啟

2.如果看不到.htaccess這檔案?  以在public_html資料夾為例,
①先進入到cPanel控制台→檔案管理員→public_html資料夾裡。
②在於該畫面的右上角會有一個〝設定〞的按鈕,點選後,會跳出〝喜好設定〞的視窗,勾選該視窗裡的 “顯示隱藏檔案 (dotfiles)”後按save,即可以呼叫出.htaccess檔案。

 

如何於.htaccess裡設定將網址由http 轉到 https

承上述,呼叫出.htaccess後,加入以下即可

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.您的SSL網址.com/$1 [R,L]

以上的設定主要是針對所有連到PORT 80 的連線,PORT80 一般都是沒有SSL的連線,自動導到有SSL的網址,以上這例子下,有SSL憑證的網址,您需要更換成您網站主機空間有SSL的網址,這樣就可以確保您的網站空間的訪客都會連到有SSL資安憑證的頁面了。

如果以上方法行不通(個人測試是可以的),您也可以試試看以下方法做SSL 自動導向

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy “upgrade-insecure-requests;”

※如果您用WordPress (或其他免費架站程式),也可以使用上述的方式來處理,或其網站後台應都會有開啟強制使用https的設定,如:Wordpress有許多的相關外掛可以安裝(如下圖裡Easy HTTPS Redirection就是相關設定的外掛),開啟後,常見開啟後會自動於.htaccess寫入rewrite語法。
※由於每個使用的WordPress版本不同,且每個外掛的未來更新狀況不同,故上述Easy HTTPS Redirection外掛僅用於展示說明(非推薦)。

※如果是WINDOWS主機的話呢? 因為Windows 虛擬主機沒有.htaccess 可以用,您可以參考這邊Windows主機Plesk Obsidian 18 介面,將http://自動導向https://
台灣很便宜的商用SSL憑證推薦購買可以參考這邊

為何已經安裝SSL主機空間上,還要作上述mod_rewrite的設定呢?

主機空間有提供〝http〞與〝https〞2種連結方式,而其中https需要申請SSL(不論是免費或是購買,詳細說明請點我),SSL申請並安裝於主機上後,僅是讓https可以正常連結使用,則此時的狀況是http可以連;https也可以連,而使用http連時,網址就是http://*****.com,此時是沒有SSL加密;同時https連結,呈現方式會https://******.com,此時是有SSL加密。

mod_rewrite的功能是讓http的網址連結 跳轉到 https的網址連結,是指輸入網址時,不論是輸入http 還是https,都一律跳轉成https的方式,因一般的網友在輸入網址時,只會直接輸入網址,不會特別在前面加上http或https,則該設定可以讓網友一律都是用https的方式在瀏覽網站,此也為目前全較主流且各大瀏覽器均喜愛的方式。

上面說mod_write很強大,什麼是mod_write呢?還可以作什麼且應該注意什麼呢?

mod_rewrite是Apache的一個模組,包括很多的功能(官方詳細說明請點我),常見為針對網址改寫(早先一律跳轉https或、動態網站靜態化)、同時也可以避免訪問敏感檔案(如因路徑改寫、防盜連)…等。

由於mod_rewrite的強大,有時網站完成後,.htaccess裡會有滿滿的mod_rewrite的指令,有些是自己寫的;有些是設定時寫入(如防盜連,也是用mod_rewrite的方式達成,設定教學請點我),故此在網站完成後,需要:

①紀錄所有mod_rewrite的功能。
②確保所有的功能都正常運作(因許多mod_rewrite的寫法若有衝突,可能會造成功能失效或網站無法顯示)

結論

水能載舟亦能覆舟,功能愈強大使用的愈多,在釐清問題時需要查找的原因也愈多,常見許多使用者因沒能完整紀錄.htaccess裡的設定,且.htaccess不若網頁程式直接顯示(是隱藏檔),導致在發生問題,需要花費許多時間才能解決問題,反而因此花費不少成本,故事後的紀錄與維護常也是關鍵的一環。

文章來源 : https://wpoki.com

Written by 婷Z

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

GIPHY App Key not set. Please check settings

One Comment