在一个影响所有的虚拟主机文件中重定向

Redirect in one virtual host file affecting all

我有一个虚拟主机文件,其中包含重定向以强制对域的请求到 https。

它似乎 很好用。我添加了另一个虚拟主机文件,所有对它的请求 (:80) 都被重定向到第一个域 :443。也就是说,对 sub.b.com:80 的请求被重定向到 a.com:443。请注意 b.com 不在同一台服务器上,只有它的子域是。

a.com

<VirtualHost a.com:80>
    ServerName a.com
    Redirect permanent / https://a.com/
</VirtualHost>

<VirtualHost a.com:443>
    ServerName a.com
    DocumentRoot /var/www/html/a
        SSLEngine On
        SSLCertificateFile /usr/local/share/ca-certificates/www.a.com.crt
        SSLCertificateKeyFile /etc/ssl/private/a.com.key

        <Directory /var/www/html/a>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

sub.b.com

<VirtualHost *:80>
    ServerName sub.b.com
    DocumentRoot /var/www/html/b
        <Directory /var/www/html/b>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

b.com 的请求将由第一个 <VirtualHost> 处理,因为您没有 b.com<VirtualHost>

你只有 <VirtualHost> sub.b.com

因此 b.com 由第一个 <VirtualHost> 处理 IP/port,因为 none 被分配来处理它,这是它的默认方式。