ローカルIP 127.0.1.2をApacheサーバー上の他のディレクトリにマッピングする

ローカルIP 127.0.1.2をApacheサーバー上の他のディレクトリにマッピングする

VirtualHost私のローカルホスト(Apacheサーバー)には、異なるディレクトリを指す2つのポート80があります。

私の2つのconfファイルは次のとおりです。

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /home/myuser/project_1/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName project2
    DocumentRoot /home/myuser/project_2/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

私の/etc/hostsファイルから:

127.0.0.1 localhost
127.0.1.2 project2

入力すると、ディレクトリhttp://localhostにマップされ、ディレクトリにマップされます。ここではすべてが問題ありませんが、入力すると常にディレクトリの代わりに最初のエントリにマッピングされます。つまり、URLの代わりにマップされます。project_1http://project2/project_2127.0.1.2project_1project_2localhostproject2

なぜこれですか?どのように逆マッピングを行うことができますか?

答え1

仮想ホスト構成は、指定された名前ベースの仮想ホストを使用しますServerName。つまり、クライアント要求の「Host」ヘッダーが一致した場合にのみ構成がロードされます。 Apacheが要求されたホストを設定された仮想ホストと一致させることができない場合、Apacheのデフォルトの動作は、見つかった最初の設定された仮想ホストをロードすることです。

正しいコンテンツを取得するにはいくつかのオプションがあります。そのうちの1つは、ServerNameアクセスしたいコンテンツと一致するようにリクエストの「Host」ヘッダーを調整することです。別の方法は、IPアドレスをaとして追加することです。ServerAliasあるいは、IPベースの仮想ホストに切り替えてそのように設定することもできます。

関連情報