Apache 重定向似乎忽略了 ServerName

Apache 重定向似乎忽略了 ServerName

我有几个虚拟主机文件。第一个将所有流量重定向到http://www.mysite.com升级到 https 版本:

<VirtualHost *:80>
   ServerName www.mysite.com
   Redirect permanent / https://www.mysite.com/
</VirtualHost>

<VirtualHost *:443>
   ServerName www.mysite.com
   # additional configuration
</VirtualHost>

第二个定义了 VirtualDocumentRoot,以便为 /var/www/www.othersite.com 等目录中的站点提供服务。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    VirtualDocumentRoot /var/www/%0
    VirtualScriptAlias  /var/www/%0/cgi-bin/
</VirtualHost>

我在 ports.conf 文件中也有 NameVirtualHost 定义(如果有帮助的话):

NameVirtualHost *:443
NameVirtualHost *:80

问题是所有流量似乎都被重定向到https://www.mysite.com。我希望ServerName www.mysite.com第一个虚拟主机文件中的行只匹配 www.mysite.com,以便访问http://www.othersite.com将提供来自 /var/www/www.othersite.com 的内容。当我从第一个文件中注释掉整个端口 80 VirtualHost 定义时,http://www.othersite.com加载如预期。我是不是漏掉了什么?如何将 www.mysite.com 的 http 重定向到 https?

编辑:

我不能把 ServerName 设置为http://www.othersite.com第二个 VirtualHost 定义是 /var/www 中还有多个站点也需要提供服务。

答案1

ServerName www.othersite.com您是否尝试过向第二个虚拟主机添加指令?

答案2

经过一番挖掘,我发现这个答案,这导致我在第二个 VirtualHost 定义中添加了以下内容:

ServerName host
ServerAlias *

其他一些非常有帮助的答案:

相关内容