使用.htaccess 和mod_rewrite 強制執行SSL/HTTPS
要使用.htaccess 和mod_rewrite 強制執行SSL/HTTPS,有多種方法可用。
使用mod_ssl
Apache 的 mod_ssl 提供 SSLRequireSSL 指令,該指令限制訪問,除非啟用 HTTPS。透過將此指令新增至啟用 SSL 的虛擬主機或目錄,可以防止敏感資料外洩。但是,此方法不會重新導向到 HTTPS。
使用mod_rewrite
要重新導向HTTPS,請在.htaccess 檔案中使用mod_rewrite:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
替代方案
強制執行HTTPS的其他選項包括:
基於PHP的解決方案
如果 . htaccess 已停用,可以使用 PHP:
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') { if(!headers_sent()) { header("Status: 301 Moved Permanently"); header(sprintf( 'Location: https://%s%s', $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'] )); exit(); } }
以上是如何使用 .htaccess 和 mod_rewrite 強制執行 SSL/HTTPS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!