我在 Apache 伺服器上託管多個網站(例如http://www.example.com),其中只有一個具有 SSL 憑證(例如https://www.example.net)。是否可以設定 Apache 以便嘗試瀏覽https://www.example.com不會導致 Apache 服務https://www.example.net?如果是這樣,怎麼辦?
我問這個是因為我的託管提供者聲明:
...如果嘗試對伺服器上的任何 IP 進行 SSL 連接,且該網域沒有可用的 SSL 虛擬主機,則會連接到列出的第一個可用的 SSL 虛擬主機。 ....如果電腦上有多個 SSL 虛擬主機,當沒有匹配時,它將自動連接到 httpd.conf 檔案中顯示的第一個虛擬主機。
答案1
預設情況下,您根本不會獲得重定向,但正如您的託管提供者所述:如果沒有為網域配置虛擬主機,則第一個 VirtualHost 是顯示的預設值。那是在您忽略 Web 瀏覽器產生的 SSL 警告之後...
如果您僅啟用了 SSL/TLS,www.example.net
則連線到https://any-domain
或https://<ip-address of your server>
.
因此,在有效域的 VirtualHost 節之前設定一個空白網站作為第一個 VirtualHost 是很常見的。
<VirtualHost *:443>
ServerName localhost
DocumentRoot /var/www/empty
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.net
DocumentRoot /var/www/example.net
</VirtualHost>