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

我试过寻找这种情况,但似乎无法find完全这个设置。 我想有以下几点:

我想有两个子域名redirect到不同的文档根目录不同的https网站。 我们拥有的SSL证书是域级(* example.com)。 以下似乎没有工作,因为当我为每个端口放置多个虚拟主机时,我得到“此网页不可用”。 有什么build议么?

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> 

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

编辑 :修正了示例configuration错误(没有ServerName指令),并添加了有关我们的DNS的信息。

您的configuration示例应该可以工作(假设您已经正确设置了与这些虚拟主机对应的DNS条目来parsing相关服务器),但是您似乎没有包含ServerName指令 – 请尝试以下操作(假设这不是)只是在你的示例configuration的构build错误):

 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>