當 SSL 證書安裝在伺服器上時,網站默認不通過安全的 HTTPS 連接可用。每次需要安全連接時,都必須在 URL 前添加 'http'。為了確保網站訪問者的最大安全,最好的方法是啟用從 HTTP 到 HTTPS 的自動重定向。
如果您在 Apache 上安裝了某些控制面板,則必須在面板本身中設置重定向,而不是在伺服器上,以避免重定向循環或模塊執行不正確。您可以在 cPanel 中查看如何設置 HTTPS 重定向的指南 在這裡。
如果未使用 cPanel 或其他控制面板或 GUI(圖形用戶界面),則應使用 Apache 重定向。
在設置重定向之前,請確保以下模塊已啟用。
- 要在基於 Debian(Ubuntu)的操作系統上啟用模塊,運行以下命令:
sudo a2enmod rewrite
sudo a2enmod ssl
- 要在基於 RHEL 的操作系統(CentOS)上啟用 ssl 模塊,運行:
yum install mod_ssl
在這些操作系統上,重寫模塊通常默認啟用。主配置文件中應存在以下行:
LoadModule rewrite_module modules/mod_rewrite.so
確保它沒有被註釋掉。如果主配置文件中沒有此行,請運行以下命令安裝該模塊:
sudo yum install mod_rewrite
如果兩個模塊都已啟用,您將看到以下消息:

啟用 Apache 重定向
啟用 http 到 https 的 Apache 重定向有幾種方法:
- 在必要的域的虛擬主機文件中啟用重定向。
- 在 .htaccess 文件中啟用它(先前在網站根文件夾中創建)。
- 在虛擬主機文件中使用 mod_rewrite 規則。
- 在 .htaccess 文件中使用它來強制 HTTPS。
在虛擬主機中啟用 Apache 重定向
在虛擬主機文件中啟用重定向比其他選項更安全和簡單,因為配置對所有系統都是相似的。通常,安裝 SSL 證書後,Apache 上會有兩個虛擬主機文件:一個是非安全端口 80,另一個是安全端口 443。可以在端口 80 的虛擬主機中啟用重定向到 HTTPS。如果您想僅對某些網頁強制 HTTPS,可以使用以下指令集:
< VirtualHost *:80 >
ServerName www.yourdomain.com
DocumentRoot /usr/local/apache2/htdocs
Redirect permanent /secure https://yourdomain.com/secure
< /VirtualHost >
< VirtualHost _default_:443 >
ServerName www.yourdomain.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
...
< /VirtualHost >
其中 /secure 是您希望 Apache 強制使用 HTTPS 的目錄。
否則,可以為網站的所有頁面啟用永久重定向到 HTTPS:
< VirtualHost *:80 >
ServerName www.yourdomain.com
Redirect permanent / https://www.yourdomain.com/
< /VirtualHost >
< VirtualHost _default_:443 >
ServerName www.yourdomain.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
...
< /VirtualHost >
使用 .htaccess 重定向到 HTTPS
作為替代方案,您可以修改 .htaccess 文件。可在放置網站文檔根文件夾的 .htaccess 文件中使用以下指令來保護網站的某些頁面:
Redirect permanent /secure https://www.yourdomain.com/secure
使用 Apache Rewritecond - mod_rewrite 規則
建議有經驗的用戶使用 mod_rewrite 規則,因為在不同系統上的確切配置可能會有所不同。mod_rewrite 規則的語法可能比較複雜——例如,如果您想將某些子文件夾重定向到 HTTPS,而這些子文件夾中還包含其他子文件夾。如果您不確定是否可以使用 mod_rewrite,最好在虛擬主機文件中啟用 HTTPS 的重定向。如果您想為某些頁面創建重定向,mod_rewrite 規則應如下所示:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?secure/(.*) https://%{SERVER_NAME}/secure/$1 [R,L]
針對所有目錄的重定向相似,格式如下:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
注意:要設置帶有 301 狀態碼(永久性) 的重定向,您需要將該代碼分配給 R 標誌中的括號,添加 "=301"。
現在您的網站將默認可通過 HTTPS 訪問。要檢查重定向是否正確工作,請清除您通常使用的瀏覽器的緩存,然後打開您的網站或嘗試在另一個瀏覽器中檢查。
我們想強調的是,上述命令僅與基於 Debian 的 Linux 派生版(如 Ubuntu)相關。如有任何具體問題以及其他類型操作系統的問題,我們強烈建議聯繫您的伺服器/主機提供商或參考官方伺服器文檔。