WIldcard SSL子域不指向正确的DocumentRoot

我在我的Apache服务器上安装了通配符SSL。 使用下面的代码snipplet,以下工作:

http://test.com (points to /var/www/html) https://test.com (points to /var/www/html) http://s1.test.com (points to /var/www/s1) 

但https://s1.test.com不起作用 – 它指向/ var / www / html而不是/ var / www / s1 – 我怎样才能得到它,所以它指向它自己的目录?

 <VirtualHost *:443> DocumentRoot "/var/www/html" ServerAlias test.com *.test.com ServerName *.test.com SSLEngine on SSLCertificateFile /home/test/STAR_test_com.crt SSLCertificateKeyFile /home/test/test.key SSLCertificateChainFile /home/test/PositiveSSL.ca-bundle </VirtualHost> <VirtualHost *:443> ServerAlias s1.test.com *.s1.test.com ServerName s1.test.com DocumentRoot "/var/www/s1" SSLEngine on SSLCertificateFile /home/test/STAR_test_com.crt SSLCertificateKeyFile /home/test/test.key SSLCertificateChainFile /home/test/PositiveSSL.ca-bundle </VirtualHost> NameVirtualHost *:80 <VirtualHost *:80> ServerName s1.test.com ServerAlias s1.test.com DocumentRoot "/var/www/s1/" </VirtualHost> <VirtualHost *:80> ServerName www.test.com ServerAlias test.com DocumentRoot "/var/www/html/" </VirtualHost> 

谢谢!

你还需要NameVirtualHost *:443

可能是来自第一个虚拟主机的通配符logging

 ServerAlias test.com *.test.com 

还包括s1.test.com,所以当你要求s1.test.com时,首先应用configuration块。 删除通配符或使s1.test.com首先在configuration文件中。