いくつかのサイト(すべて同じIPアドレスから)を提供するApacheサーバーがあります。
サイトAは、HTTPおよびHTTPS経由でアクセス可能でなければなりません。
サイトBはのみ HTTP経由でアクセス可能である必要があります-https経由ではアクセスできません。
サイトAは正常に機能しますが、サイトBは問題を引き起こしています。ユーザーがhttps://SiteB
にアクセスしようとすると、https://SiteA
にリダイレクトされます。
サイトAの構成は次のようになります。
# 001-SiteA.conf:
<VirtualHost *:80>
ServerName SiteA
ServerAlias SiteA
# ...
</VirtualHost>
# 001-SiteA-SSL.conf:
<VirtualHost *:443>
ServerName SiteA
ServerAlias SiteA
# ...
</VirtualHost>
# 002-SiteB.conf
<VirtualHost *:80>
ServerName SiteB
ServerAlias SiteB
# ...
</VirtualHost>
望ましいのは、ユーザーが404エラーまたは空のページなどを取得することですが、間違いなくnot SiteAのコンテンツです。
https://SiteB
がユーザーをhttps://SiteA
にリダイレクトしているのはなぜですか。
名前ベースの仮想ホストのApacheドキュメント 状態(強調は彼らのものです):
IPとポートの組み合わせに対するデフォルトの名前ベースの仮想ホスト
最も具体的な一致するIPアドレスとポートの組み合わせを含む仮想ホストのセットに一致するServerNameまたはServerAliasが見つからない場合、最初にリストされた仮想ホスト使用される一致。
siteB:443
に仮想ホストが定義されていないため、IPアドレスとポート番号に一致する最初のホストであるため、デフォルトでsiteA:443
に設定されています。
これを解決する方法は2つあります。
siteB:443
の仮想ホストを作成します0000-default-site.conf
や0000-default-site-ssl.conf
のような構成ファイルに名前を付けて、リストの最初に来るようにしますデフォルトのサイトソリューションをお勧めします。そうしないと、サーバーを指す任意のランダムなホスト名に対してSiteAが提供されます。