0

OS: centOS 6.3 Final

以下に示すように、mysql および apache2(httpd) パッケージをインストールし、/etc/httpd/conf/httpd.conf の構成を変更しました。

<VirtualHost *:80>
    DocumentRoot /var/www/html/wordpress/
    ServerName www.asterix.int
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/html/staticSite/
    ServerName www.meins.lan
    ServerAlias www.deins.lan
    ServerAlias www.obelix.int
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/html/joomla/
    ServerName www.example.com
    ServerAlias www2.example.com
    ServerAlias www3.example.com
</VirtualHost>

ServerName と ServerAlias はすべて正常に機能しており、3 つのページにアクセスできます。

しかし、サーバーの IP 経由でページにアクセスしようとすると、(少なくとも私にとっては) 奇妙なことが起こります。apache2 は、最初に定義された virtualHost (この例では wordpress) のインデックス ページを返します。3 つの virtualHosts すべてでこれを試しましたが、同じ結果が得られました。

これは正常な動作ですか、それとも間違っていますか?

これが通常の動作である場合: ip へのすべてのリクエストに対して排他的に DocumentRoot を設定できますか?

どうも !

4

2 に答える 2

0

これは意図した動作です。IP (たとえばhttp://123.123.123.123/) を使用する場合、Apache は123.123.123.123HTTP としてホスト名を使用します。ServerNameまたはServerAliasのVirtualHost がないため123.123.123.123、最初の VirtualHost が使用されます。

したがって、自分だけをリッスンする VirtualHost が必要な場合は、次のようhttp://123.123.123.123/に VirtualHost を作成するだけです。

<VirtualHost *:80>
    DocumentRoot /var/www/html/my-ip-site/
    ServerName 123.123.123.123
</VirtualHost>
于 2013-05-13T09:43:13.390 に答える