Apache2 服务器虚拟主机奇怪的行为

时间:2021-07-01 19:47:14

标签: http https apache2

我正在尝试让我的个人网站将非 https 请求重定向到该网站的 https 版本。在我的 httpd.conf 文件中设置一个这样的虚拟主机:

Listen 443
<VirtualHost *:443>
        ServerAdmin   admin@my-website.com
        DocumentRoot  /var/www/html
        ServerName    www.my-website.com
        ErrorLog      /var/www/logs/error_log
        SSLEngine on
        SSLCertificateFile       /etc/letsencrypt/live/my-website.com/fullchain.pem
        SSLCertificateKeyFile    /etc/letsencrypt/live/my-website.com/privkey.pem
</VirtualHost>

完全正常。

但是,当我尝试为端口 80 设置虚拟主机时,如下所示:

Listen 80
<VirtualHost *:80>
        ServerAdmin admin@my-website.com
        ServerName www.my-website.com
        RewriteEngine On
        RewriteCond %{SERVER_PORT} !443
        RewriteRule ^(/(.*))?$ https://%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>

它被完全跳过,文件最终会从主服务器获得服务。我的设置有问题吗?

此外,正在发生的事情让我完全困惑。如果我将主服务器的 DocumentRoot 保持不变,但将其更改为端口 443 虚拟主机的一些测试 html,则当我转到网站的 http 版本时,我会看到测试 html,但该站点仍然显示不安全的 http 连接,而不是 https 版本。什么可能导致这种情况?

0 个答案:

没有答案