私はいくつかのWebサイトを持っており、それらはすべてhttp-vhosts.conf
にそれぞれのServerName
とDocumentRoot
でセットアップされており、正常に機能しています。
しかし、サーバーのIPアドレスURLにアクセスすると、予想される場所からサービスを提供するApacheではなく、first仮想ホスト内のファイルが返されます。http.conf
ファイルのDocumentRoot
。
外部またはループバックに関係なく、IPアドレスでサーバーにアクセスするようにApacheを構成するにはどうすればよいですか?not最初のVirtualHostを返しますか?
これが最初のVirtualHostで、IPでWebサーバーにアクセスした場合の応答として現在返されています。
<VirtualHost *:80>
ServerName "delaneatallent.com"
ServerAlias "www.delaneatallent.com"
DocumentRoot "/Library/WebServer/Documents/delanea"
</VirtualHost>
重要な場合は、OSXでApache2.2.14を使用します。
:wq
要するに、あなたはできません-それがApacheの仕組みです。 (Prixのコメントによると)そのIPをリッスンしている場合、ApacheはIP要求を処理するときに定義された最初の仮想ホストを使用します。
これが望ましくない場合は、最初の仮想ホストを、IPによる場合に実際に提供したいものに変更することを検討してください。それがあなたが望むものではない場合は、それをあなたが望む場所に移動させるための最初の仮想ホストとしてリダイレクトを入れることを検討してください。
# default
<VirtualHost *:80>
RewriteEngine on
RewriteRule ^/(.*) http://othersite.com/$1 [L,R]
</VirtualHost>
ApacheがそのIPをリッスンするのを止めることはできませんが、少しの創造性であなたが望むことをする何か他のことをするようにすることができます。
これを修正するために私がしたことは、/var/www
のデフォルトページを作成することでした。これは、IPまたはサーバー上のサイトに関連する不明なURLでサーバーに移動したときに表示されるデフォルトサイトを提供します。
私がホストする実際のサイトは、デフォルトのサイト構成のsites-enabledフォルダーにあり、すべて名前に基づいており、別のディレクトリを指しています。
簡単に言うと、IPでサーバーに移動すると、デフォルトのエラーページが表示されます。