同じサーバー上の 2 つの https 仮想ホスト: 同じポート、異なるサブドメイン

同じサーバー上の 2 つの https 仮想ホスト: 同じポート、異なるサブドメイン

このシナリオを検索してみましたが、この設定を正確に見つけることができません。次のようなものを用意したいと思っています。

2 つのサブドメインを、異なるドキュメント ルートを持つ異なる https サイトにリダイレクトしたいと考えています。使用している SSL 証明書はドメイン レベル (*example.com) です。次の方法は機能していないようです。各ポートに複数の仮想ホストを配置すると、「この Web ページは利用できません」というメッセージが表示されます。何か提案はありますか?

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>

関連情報