[APACHE DOCUMENTATION]

Apache HTTP Server

Directory, Location, Files セクションの動作方法

セクション <Directory>, <Location>, <Files> には、それぞれ指定されたディレクトリ、URL, ファイルにのみ適用されるディレクティブを書くことができます。 また、ディレクトリにディレクティブを適用するためにディレクトリ中に .htaccess ファイルを使用することもできます。このドキュメントは これらのセクションの違いを説明し、それらと、ディレクトリや リクエストされた URL に Apache がどのディレクティブを 適用するかを決定する方法との関係を説明します。

セクション中に許可されているディレクティブ

構文上 <Directory> に書けるものはすべて <Location> にも書くことができます (<Files> セクションは例外です)。しかし、中には AllowOverrideFollowSymLinksSymLinksIfOwnerMatch という二つのオプションのように、<Location>, <LocationMatch>, <DirectoryMatch> 中では意味のないものもあります。 同様のことが <Files> にも言えます。構文的にはすべて大丈夫ですが、 意味的にはそうでないものもあります。

セクションのマージ方法

マージの順番は以下のようになっています:

  1. <Directory> (正規表現無し) と .htaccess を同時に (.htaccess が許可されていれば、それが <Directory> を 上書きします)
  2. <DirectoryMatch> と正規表現のある <Directory>
  3. <Files><FilesMatch> を同時に
  4. <Location><LocationMatch> を同時に

<Directory> 以外は、それぞれのグループは設定ファイルに現れた順番に処理されます。 <Directory> (上のグループ 1) はディレクトリが短いものから長いものへと処理されます。複数の <Directory> セクションが同じディレクトリに 適用される場合は、設定ファイル中の順番に従って処理されます。 設定ファイルは httpd.conf, srm.conf, access.conf の順に処理されます。Include によって挿入された設定は 挿入しているファイルの Include ディレクティブの位置にあったかのように扱われます。

<VirtualHost> セクション中のセクションは バーチャルホストの定義の外側の対応するセクションの に適用されます。これによりバーチャルホストが メインのサーバ設定を上書きできるようなります。(注意: これは 1.2.2 以降と 1.3a2 以降でのみ正しく動作します。 これらのリリースより前のものはバーチャルホストの中のセクションは メインサーバのに適用されていました)。

後のセクションのディレクティブが前のセクションのものを上書きします。

セクションを使う際の注意

一般的なガイドラインは:

重要な例外は:

.htaccess ファイルの解析に関する注意:

<Location> とシンボリックリンク:

<Files>Options:

他の注意:


Apache HTTP Server

Index