![同じサーバー上の 2 つの https 仮想ホスト: 同じポート、異なるサブドメイン](https://rvso.com/image/652670/%E5%90%8C%E3%81%98%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E4%B8%8A%E3%81%AE%202%20%E3%81%A4%E3%81%AE%20https%20%E4%BB%AE%E6%83%B3%E3%83%9B%E3%82%B9%E3%83%88%3A%20%E5%90%8C%E3%81%98%E3%83%9D%E3%83%BC%E3%83%88%E3%80%81%E7%95%B0%E3%81%AA%E3%82%8B%E3%82%B5%E3%83%96%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3.png)
このシナリオを検索してみましたが、この設定を正確に見つけることができません。次のようなものを用意したいと思っています。
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>