我试过寻找这种情况,但似乎无法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>