Apache-2.4
Apache 將 HTTP 重定向到 HTTPS 重定向還是重寫?
我找到了兩種使用 apache 將 http 重定向到 https 的方法。使用重定向
Redirect / https://mydomain/
或重寫
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://mydomain/$1 [R,L]
有什麼區別?
關於何時不使用 mod_rewrite的官方文件列出了 簡單重定向,並以 HTTP 到 HTTPS 為例:
mod_alias提供了
Redirect
andRedirectMatch
指令,它們提供了一種將一個 URL 重定向到另一個 URL 的方法。這種將一個 URL 或一類 URL 簡單地重定向到其他地方,應該使用這些指令而不是RewriteRule
.RedirectMatch
允許您在重定向條件中包含正則表達式,從而提供使用RewriteRule
.的一個常見用途
RewriteRule
是重定向整個 URL 類。例如,/one
目錄中的所有 URL 都必須重定向到http://one.example.com/
,或者可能所有 http 請求都必須重定向到 https。
Redirect
指令可以更好地處理這些情況。如果一個人只能訪問處理 HTTP 和 HTTPS 的單個配置部分,那麼您的
RewriteRule
範例可能是必要的 hack。這在涉及文件時很常見,.htaccess
例如在共享主機上。那是另一個故事。何時(不)使用 .htaccess 文件。