同一伺服器上的兩個 https 虛擬主機:相同端口,不同子網域

同一伺服器上的兩個 https 虛擬主機:相同端口,不同子網域

我嘗試過搜尋此場景,但似乎無法準確找到此設定。我想要一些類似以下的東西:

我想讓兩個子網域重定向到具有不同文件根的不同 https 網站。我們擁有的 ssl 憑證是網域層級的 (*example.com)。以下內容似乎不起作用,因為當我為每個連接埠放置多個虛擬主機時,我得到“此網頁不可用”。有什麼建議麼?

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 位址。

編輯:修正了範例配置中的錯誤(無 ServerName 指令)並新增了有關我們的 DNS 的資訊。

答案1

您的設定範例應該可以工作(假設您已正確設定與這些虛擬主機相對應的 DNS 項目以解析到有問題的伺服器),但您似乎沒有包含ServerName指令 - 嘗試以下操作(假設這不是只是範例設定建置中的錯誤):

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>

相關內容