web-dev-qa-db-ja.com

ローカルの<VirtualHost>を持つ<Directory />の目的は何ですか

<VirtualHost *:80>
    DocumentRoot /var/www
    <Directory />
    </Directory>
</VirtualHost>

<Directory>タグは、サーバー上の/var/wwwまたは/を参照していますか?

VirtualHostに/構成を設定する目的は何ですか?

1
00500005

Apacheは、ディレクトリの構成を最小から最大の要求に適用します。本質的に、<Directory />セクションは仮想ホストのデフォルトを指定します。他のすべてのディレクトリがそのパスにその部分を持っているためです。

複数の(非正規表現)セクションがドキュメントを含むディレクトリ(またはその親の1つ)に一致する場合、ディレクティブは.htaccessファイルからのディレクティブが散在する最短一致の最初に適用されます。たとえば、

<Directory />
  AllowOverride None
</Directory>

<Directory "/home">
  AllowOverride FileInfo 
</Directory>

文書/home/web/dir/doc.htmlにアクセスするための手順は次のとおりです。

  • AllowOverride Noneディレクティブを適用します(.htaccessファイルを無効にします)。
  • AllowOverride FileInfoディレクティブ(ディレクトリ/ home用)を適用します。
  • /home/.htaccess、/home/web/.htaccess、および/home/web/dir/.htaccessのFileInfoディレクティブをこの順序で適用します。

ところで、上記の例では<Directory /home/web>はまったく同じように機能します。ただし、通常使用されない理由は、そうするとサイトを新しいディレクトリに移動するのが少し難しくなるためです。 <Directory />を使用する方が簡単です。これは、サイトのルートがどこにあっても機能するためです。

Apacheサイトに完全な説明があります: http://httpd.Apache.org/docs/current/mod/core.html#directory

2
krowe