Mod-Rewrite

Apache http 到 https 沒有任何地址?

  • January 30, 2022

正常的 http 到 https 重寫可能如下所示:

RewriteEngine On
# RewriteCond %{HTTP_HOST} !^example.com$
# RewriteRule /.* https://example.com/ [R]

但是此程式碼將站點指定為**“example.com”**

無論如何要進行“全域”重寫,因此無論是否有人打開example.com、broken.example.com 甚至example.Lom只要 DNS 指向伺服器),它都會簡單地放一個 https在上面?

適用於擁有多個域名的伺服器。

能夠在任何地方使用相同的程式碼會很棒..

您可以在任何虛擬主機中使用以下程式碼將 http 重定向到 https:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

您可以通過在預設虛擬主機(在 debian 上)中設置程式碼來全域/etc/apache2/sites-available/000-default.conf設置它,以將任何域上的任何 http 請求重定向到其 https 版本:

<VirtualHost *:80>
   RewriteEngine On
   RewriteCond %{HTTPS} off
   RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
   ...
</VirtualHost>

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