WIldcard SSL 子域未指向正確的 DocumentRoot

WIldcard SSL 子域未指向正確的 DocumentRoot

我的 Apache 伺服器上安裝了通配符 SSL。使用下面的程式碼片段,可以實現以下效果:

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>

謝謝!

答案1

您還需要NameVirtualHost *:443.

答案2

可能是來自第一個虛擬主機的通配符記錄

ServerAlias test.com *.test.com

還包括 s1.test.com,因此當您要求 s1.test.com 時,將套用第一個設定區塊。刪除通配符或使 s1.test.com 在設定檔中排在第一位。

相關內容