Ssl

將一個域上的所有請求重定向到 https 非 www

  • January 5, 2016

我有一個在一個域上執行的 ISPConfig 3 站點。對於通過 Apache 執行的不同應用程序,我有多個 vhost 文件。我想對通過 Apache 使用該域的每個請求啟用https://example.com/%QUERY_STRING% 。現在,我必須粘貼

RewriteEngine on
RewriteCond %{HTTPS} ^off$
RewriteRule . https://example.com%{REQUEST_URI} [R,L] 

RewriteEngine on
RewriteCond %{HTTPS} ^on$
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule . https://example.com%{REQUEST_URI} [R,L] 

在我的每一個虛擬主機中。如果我必須這樣做一次,那將不是問題,但我會不斷擦除我的伺服器並從頭開始重建它(我有充分的理由)。我不喜歡瀏覽所有虛擬主機並將其粘貼到每個虛擬主機中,我知道必須有一種更技術性的方法來做到這一點。我試著把它放進我的apache2.conf,但這不起作用。<Location>此外,除非我們處於或<Directory>或類似的狀態,否則我無法打開 SSLEngine 。

我該怎麼做呢?

只需放入您的apache2.conf

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://example.com$1 [R,L] 

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteRule (.*) https://example.com$1 [R,L] 

引用自:https://serverfault.com/questions/746748