正常的 http 到 https 重写可能如下所示:
RewriteEngine On
# RewriteCond %{HTTP_HOST} !^example.com$
# RewriteRule /.* https://example.com/ [R]
但此代码指定网站“example.com”
有没有办法制作“全球的“重写,所以无论是否有人打开example.com、broken.example.com 甚至例子.Lom,(只要 DNS 指向服务器)那么它会简单地在上面放一个 https 吗?
对于具有多个域名的服务器。
如果能够在任何地方使用相同的代码那就太好了。
答案1
您可以在任何虚拟主机中使用以下代码将 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>