web-dev-qa-db-ja.com

ApacheがIPのみのリクエストに応答しないようにするにはどうすればよいですか?

私はいくつかのWebサイトを持っており、それらはすべてhttp-vhosts.confにそれぞれのServerNameDocumentRootでセットアップされており、正常に機能しています。

しかし、サーバーの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

5
richardtallent

要するに、あなたはできません-それがApacheの仕組みです。 (Prixのコメントによると)そのIPをリッスンしている場合、ApacheはIP要求を処理するときに定義された最初の仮想ホストを使用します。

これが望ましくない場合は、最初の仮想ホストを、IPによる場合に実際に提供したいものに変更することを検討してください。それがあなたが望むものではない場合は、それをあなたが望む場所に移動させるための最初の仮想ホストとしてリダイレクトを入れることを検討してください。

# default
<VirtualHost *:80>
  RewriteEngine on
  RewriteRule ^/(.*) http://othersite.com/$1 [L,R]
</VirtualHost>

ApacheがそのIPをリッスンするのを止めることはできませんが、少しの創造性であなたが望むことをする何か他のことをするようにすることができます。

10
user15590

これを修正するために私がしたことは、/var/wwwのデフォルトページを作成することでした。これは、IPまたはサーバー上のサイトに関連する不明なURLでサーバーに移動したときに表示されるデフォルトサイトを提供します。

私がホストする実際のサイトは、デフォルトのサイト構成のsites-enabledフォルダーにあり、すべて名前に基づいており、別のディレクトリを指しています。

簡単に言うと、IPでサーバーに移動すると、デフォルトのエラーページが表示されます。

1
Scott