我有几个虚拟主机文件。第一个将所有流量重定向到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
您是否尝试过向第二个虚拟主机添加指令?