最近仮想ホストについて研究していて、次のように2つの仮想ホストを構成しました
そのうちの 1 つは ServerName が 127.0.0.1 に設定されています。次に、C ドライブの hosts ファイルに
そこで質問が来ます。
ブラウザに www.abc.com と直接入力すると、プロジェクト E:/wamp/crm にアクセスします。 www.abc.com は、ホストの 127.0.0.1 に対応していませんか? E:/wamp/wamp/www でアクセスする必要はありませんか?次に、ブラウザに 127.0.0.1 を直接入力すると、プロジェクト E:/wamp/wamp/www? にアクセスします。ここだけはわかりません。 。 。 。神様、助けてください。 。 。 。 。 。
PHP中文网2017-05-16 16:59:58
公式ドキュメントはこちらです: 仮想ホストマッチングの詳細な議論
あなたは「名前ベースの仮想ホスト」に属しています。この段落を読んでください:
簡単に翻訳してみましょう。 vhost の IP とポートが一致すると (ここでは *:80 です)、Apache は vhost 構成ファイル内の vhost の順序に従ってそれらを順番に照合します。 接続が SSL を使用しており、サーバーがサーバー名最も一致すると判断された IP アドレス
とポートの組み合わせをリストする VirtualHost ディレクティブが複数ある場合、残りの手順の
「リスト」は、一致した仮想ホストのリストをその順序で参照します。設定ファイル
の表示をサポートしており、SSL クライアント ハンドシェイクに要求されたホスト名を持つ TLS 拡張子が含まれている場合、そのホスト名は、ホスト: ヘッダーがサーバーで使用されるのと同様に、以下で使用されます
非 SSL 接続
それ以外の場合、アドレスが一致した最初の名前ベースの仮想ホストが SSL 接続に使用されます
。サーバーが接続に使用する証明書が仮想ホストによって決定されるためです。
SSL 接続の場合、ホスト名は TLS ハンドシェイク情報の SNI に基づいて検索されます。 SNI がサポートされていない場合は、IP とポート (ここでも *:80 を指します) が一致する最初の仮想ホストと照合されます。
リクエストに Host: ヘッダー フィールドが含まれる場合、
ServerName または ServerAlias が一致する最初の vhost がリストで検索され、リクエストはその vhost から提供されます。Host: ヘッダー フィールドには一致するものがない場合は、最初の IP ポート (*:80 を参照) に一致する仮想ホストにスローしますポート番号を含めることができます。しかし、Apache は常にそれを無視し、クライアントがリクエストを送信した実際のポートと照合します。
HTTP ヘッダーにホスト情報が含まれている場合、
に一致する最初の仮想ホストと照合されます。場合によっては、ホストにポート情報が含まれていても、Apache がこのポートを読み取らないことがあります。
指定された IP アドレスを持つ構成ファイル内の最初の vhost が最も高い優先順位を持ち、不明なサーバー名へのリクエスト、または Host: ヘッダー フィールドのないリクエスト (HTTP/1.0 リクエストなど) をキャッチします。
ServerName
或者ServerAlias
あなたがアクセスした abc.com は最初の CRM サイトですか?いいえ、127.0.0.1 ですか (アドレス バーに 127.0.0.1 を直接入力した場合のみ)。 いいえ、その場合はデフォルト (最初の crm の構成) を使用します。
过去多啦不再A梦2017-05-16 16:59:58
個人的には、serverName は無駄だと思うので、優先適応原則に従って、ポート 80 が直接最初のルールになります。本当に 2 つのサイトを接続したい場合は、ポート番号を使用して区別してください~
ドキュメントを読むこともできます。中国語文書の推奨翻訳者: Jin Buguo。
大家讲道理2017-05-16 16:59:58
ドメイン名は IP に解決するために使用されるため、両方とも 127.0.0.1 です
2 つのポートも 80 であるため、最初のポートのみにアクセスできます
次のポートを 8080 に変更し、ポート 8080 を使用して 2 番目のポートにアクセスします