Apache-2.2
僅子域上的 SSL
這應該是一個超級簡單的設置!
我正在嘗試僅在單個子域上啟用 SSL。但是,當我這樣做時,我的所有子域和主域最終都指向該子域的文件根目錄。
需要明確的是,當我指向瀏覽器時,我會得到以下文件根目錄:
http://domain.com -> /var/www [GOOD] http://sub1.domain.com -> /media/large/sub1 [GOOD] http://sub2.domain.com -> /var/www [Strange, but doesn't bother me. And error message would be better if possible, or a redirect to https.] https://domain.com -> /media/large/sub2 [BAD] https://sub1.domain.com -> /media/large/sub2 [BAD] https://sub2.domain.com -> /media/large/sub2 [GOOD]
那些 2
$$ BAD $$行業才是真正困擾我的。我不希望導航到這些 URL 的人訪問
sub2
文件根目錄。 這是我的ports.conf
:NameVirtualHost *:80 Listen 80 <IfModule mod_ssl.c> NameVirtualHost *:443 Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
這是我所有的 /etc/apache2/sites-enabled
domain.com
:<VirtualHost *:80> ServerName domain.com DocumentRoot /var/www </VirtualHost>
sub1.domain.com
:<VirtualHost *:80> ServerName sub1.domain.com DocumentRoot /media/large/sub1 </VirtualHost>
sub2.domain.com
:<VirtualHost *:443> ServerName sub2.domain.com:443 DocumentRoot /media/large/sub2 SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key </VirtualHost>
如果重要的話,這是在一個完全預設的 Ubuntu 伺服器上。
您只在埠 443 上定義了一個 VirtualHost,因此任何對埠 443 的訪問都必須使用該配置,無論他們使用什麼域名。如果這不是您想要的,請為其他域設置 VirtualHost 配置並將它們指向不同的地方。
與http://sub2.domain.com的問題相反- 您尚未為該域名定義 VirtualHost,因此它使用您的預設 VirtualHost,這是第一個,因此它使用 /var /www 作為根。