Apache HTTP サーバ バージョン 2.4
Apache モジュール mod_dir
説明: | 「最後のスラッシュ」のリダイレクトと、ディレクトリの インデックスファイルを扱う機能を提供する |
---|---|
ステータス: | Base |
モジュール識別子: | dir_module |
ソースファイル: | mod_dir.c |
概要
ディレクトリインデックスは、次の二つのうちどちらかが利用されます:
- 一つ目は、ユーザが作成したファイルを用いるもので、通常
index.html
というファイル名を使います。このファイル名は、DirectoryIndex
ディレクティブで 指定することができます。この機能はmod_dir
モジュールで提供されます。 - もう一つの方法は、
サーバによって自動的に生成されるディレクトリリストを用いる場合です。
この機能は、
mod_autoindex
モジュールにより提供されます。
自動的なインデックス生成機能を削除 (もしくは交換) できるように、この二つの機能は分離されています。
なお http://servername/foo/dirname
という URL
へのリクエストがあった際に、dirname
というディレクトリがあれば、「最後にスラッシュをつけた形」の URL
へのリダイレクトを送出します。
ディレクトリへのアクセスはスラッシュで終わっている必要があり、
mod_dir
は、http://servername/foo/dirname/
へのリダイレクトを送出することになります。
DirectoryCheckHandler ディレクティブ
説明: | Toggle how this module responds when another handler is configured |
---|---|
構文: | DirectoryCheckHandler On|Off |
デフォルト: | DirectoryCheckHandler Off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess |
上書き: | Indexes |
ステータス: | Base |
モジュール: | mod_dir |
互換性: | Available in 2.4.8 and later. Releases prior to 2.4 implicitly act as if "DirectoryCheckHandler ON" was specified. |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
DirectoryIndex ディレクティブ
説明: | クライアントがディレクトリをリクエストしたときに調べる リソースのリスト |
---|---|
構文: | DirectoryIndex
local-url [local-url] ... |
デフォルト: | DirectoryIndex index.html |
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess |
上書き: | Indexes |
ステータス: | Base |
モジュール: | mod_dir |
クライアントが、ディレクトリ名の最後に「/」
を指定してディレクトリインデックスを要求する場合に探すリソースのリストを
DirectoryIndex
ディレクティブで設定します。
Local-url
は、リクエストされたディレクトリに対応する、サーバ上のドキュメントの
(% エンコードされた) URL で、普通はディレクトリ中のファイルの名前です。
複数の URL が設定された場合には、最初に見つかったものを返します。
それらが見つからず、Indexes
オプションがセットされている場合、ディレクトリのリストを生成します。
例
DirectoryIndex index.html
http://myserver/docs/
へのアクセスがあり、
http://myserver/docs/index.html
が存在すれば、この URL が返されます。
もし存在しなければ、ディレクトリのリストが返されます。
注: ドキュメントが同じディレクトリ内に存在するは必要ありません。
DirectoryIndex index.html index.txt /cgi-bin/index.pl
とした場合、index.html
と index.txt
のどちらもディレクトリ内に存在しない場合、CGI スクリプト
/cgi-bin/index.pl
が実行されます。
DirectoryIndexRedirect ディレクティブ
説明: | Configures an external redirect for directory indexes. |
---|---|
構文: | DirectoryIndexRedirect on | off | permanent | temp | seeother |
3xx-code
|
デフォルト: | DirectoryIndexRedirect off |
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess |
上書き: | Indexes |
ステータス: | Base |
モジュール: | mod_dir |
互換性: | Available in version 2.3.14 and later |
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
DirectorySlash ディレクティブ
説明: | パス末尾のスラッシュでリダイレクトするかどうかのオンオフをトグルさせる |
---|---|
構文: | DirectorySlash On|Off |
デフォルト: | DirectorySlash On |
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess |
上書き: | Indexes |
ステータス: | Base |
モジュール: | mod_dir |
互換性: | 2.0.51 以降 |
要求のあった URL がディレクトリを指すかどうかを、
mod_dir
が調整するべきかどうかを
DirectorySlash
ディレクティブで設定します。
典型的には、ユーザが末尾のスラッシュ無しでリソースへのリクエストを発行し、
そして、そのリソースがディレクトリを指していた場合、mod_dir
は、末尾にスラッシュを付加した上で同じリソースにリダイレクトさせます。
この挙動には幾つか理由があります:
- ユーザは、最終的にはリソースの別名 URL をリクエストすることになる。
mod_autoindex
が期待通りに動く。mod_autoindex
の生成するリンクはパスを出力しませんので、スラッシュがない場合は間違ったパスを 指してしまうことになります。DirectoryIndex
は、 末尾にスラッシュがついているリクエストについてのみ評価される。- HTML ページの相対 URL 参照が正しく動作する。
とはいえ、もしこういった効果を望まない、かつ、 上記のような理由が当てはまらない場合は、リダイレクトを次のようにしてオフにできます:
# see security warning below!
<Location /some/path>
DirectorySlash Off
SetHandler some-handler
</Location>
セキュリティ警告
末尾のスラッシュでのリダイレクトをオフにすると、結果的に情報漏洩を
招くことになるかもしれません。
mod_autoindex
が有効 (Options +Indexes
) で、
DirectoryIndex
が有効なリソース (例えば
index.html
) を指していて、また、要求のあった URL に特別な
ハンドラが設定されていない場合を考えてみてください。
この場合末尾にスラッシュのついているリクエストに対しては index.html
ファイルが返されます。しかしスラッシュのないリクエストに対しては、
ディレクトリの内容一覧を返してしまいます。