同一服务器上的两个 https 虚拟主机:相同端口,不同子域

同一服务器上的两个 https 虚拟主机:相同端口,不同子域

我尝试搜索此方案,但似乎找不到确切的设置。我想要类似以下内容的内容:

我想让两个子域名重定向到具有不同文档根目录的不同 https 站点。我们拥有的 SSL 证书是域级 (*example.com)。以下方法似乎不起作用,因为当我为每个端口设置多个虚拟主机时,我收到“此网页不可用”的消息。有什么建议吗?

NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
  ServerName subdomain1.example.com
  RedirectPermanent / https://subdomain1.example.com
</VirtualHost>
<VirtualHost *:80>
  ServerName subdomain2.example.com
  RedirectPermanent / https://subdomain2.example.com
</VirtualHost>
<VirtualHost *:443>
  DocumentRoot /srv/www/subd1/
  ServerName subdomain1.example.com
  # more directives
</VirtualHost>
<VirtualHost *:443>
  DocumentRoot /srv/www/subd2/
  ServerName subdomain2.example.com
  # more directives
</VirtualHost>

我们有将 subdomain1.example.com 和 subdomain2.example.com 都指向我们的服务器 IP 地址的 DNS。

编辑:修复了示例配置中的错误(没有 ServerName 指令)并添加了有关我们的 DNS 的信息。

答案1

您的配置示例应该可以工作(假设您已经正确设置了与这些虚拟主机相对应的 DNS 条目以解析到有问题的服务器),但您似乎没有包含ServerName指令 - 请尝试以下操作(假设这不仅仅是示例配置构造中的错误):

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
  ServerName subdomain1.example.com
  RedirectPermanent / https://subdomain1.example.com
</VirtualHost>

<VirtualHost *:80>
  ServerName subdomain2.example.com
  RedirectPermanent / https://subdomain2.example.com
</VirtualHost>

<VirtualHost *:443>
  DocumentRoot /srv/www/subd1/
  ServerName subdomain1.example.com
  # more directives
</VirtualHost>

<VirtualHost *:443>
  DocumentRoot /srv/www/subd2/
  ServerName subdomain2.example.com
  # more directives
</VirtualHost>

相关内容