2

以下は私の設定ファイルです:

NameVirtualHost 12.34.56.78:80  

<VirtualHost 12.34.56.78:80>  
    ServerAdmin admin@domain1.com  
    ServerName domain1.com  
    ServerAlias www.domain1.com   
    DocumentRoot /srv/www/domain1.com/public_html1/  
    ErrorLog /srv/www/domain1.com/logs/error.log  
    CustomLog /srv/www/domain1.com/logs/access.log combined  
</VirtualHost>  

<VirtualHost 12.34.56.78:80>  
    ServerAdmin admin@domain2.com  
    ServerName domain2.com  
    ServerAlias www.domain2.com  
    DocumentRoot /srv/www/domain2.com/public_html1/  
    ErrorLog /srv/www/domain2.com/logs/error.log  
    CustomLog /srv/www/domain2.com/logs/access.log combined  
</VirtualHost> 

問題は、私がwww.domain1.comブラウザに入ると、apache2 は にある Web ページを取得せず/srv/www/domain1.com/public_html1/、代わりに、別のファイルで定義されたデフォルトのドキュメント ルートからページを取得することです。ただし、 を入れるwww.domain2.comと、すべて正常に動作します。2 つの VirtualHost 構成ブロックに違いは見られないので、何が違いを生んでいるのだろうか。.htaccessところで、ドキュメントルートの下にファイルを置いていません。

4

3 に答える 3

5

次のコマンドを発行して、Apache の設定を確認してみてください。

/usr/sbin/apache2ctl -S

「デフォルト」の仮想ホストは「www.domain1.com」をサーバー名として使用しているため、「www.domain1.com」へのリクエストに応答すると思います。

私のマシンでは、「www.domain1.com」がマシンのホスト名であるためにこれが発生しました。ServerName が指定されていない場合、Apache は推測しようとするため、上記の問題が発生します。

これは、sites-available/default で「ServerName default」を指定することで解決しました。

これも役立つかもしれません:

http://httpd.apache.org/docs/current/dns-caeats.html

于 2010-12-30T00:46:17.907 に答える
2

Windows を使用していて、おそらく ZendSever を使用している場合は、次に行う必要があります。

ディレクトリ「C:\Windows\System32\drivers\etc」のファイル「hosts」を開きます

追加

127.0.0.1 www.domain1.com

127.0.0.1 ローカルホスト
127.0.0.1 domain1.com


次のようになります。

127.0.0.1 ローカルホスト

127.0.0.1 domain1.com

127.0.0.1 www.domain1.com

127.0.0.1 domain2.com

127.0.0.1 www.domain2.com

127.0.0.1 domain3.com

127.0.0.1 www.domain3.com

すべてのドメインをこのファイルに登録する必要があります。

于 2013-05-04T17:59:45.823 に答える
1

これも私を捕まえたと言いたかっただけで、デフォルトのApacheサイトでServerNameを変更すると、単にそのサイトを無効にするのと同じようにうまくいきました

a2dissite デフォルト

次に、Apacheをリロードします。

于 2013-02-27T00:06:19.530 に答える