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