Apache http 到 https 没有任何地址?

Apache http 到 https 没有任何地址?

正常的 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>

相关内容