Apache HTTP サーバ バージョン 2.0
This document refers to the 2.0 version of Apache httpd, which is no longer maintained. Upgrade, and refer to the current version of httpd instead, documented at:
You may follow this link to go to the current version of this document.
説明: | 「最後のスラッシュ」のリダイレクトと、ディレクトリの インデックスファイルを扱う機能を提供する |
---|---|
ステータス: | 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/
へのリダイレクトを送出することになります。
説明: | クライアントがディレクトリをリクエストしたときに調べる リソースのリスト |
---|---|
構文: | 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
が実行されます。
説明: | パス末尾のスラッシュでリダイレクトするかどうかのオンオフをトグルさせる |
---|---|
構文: | DirectorySlash On|Off |
デフォルト: | DirectorySlash On |
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess |
上書き: | Indexes |
ステータス: | Base |
モジュール: | mod_dir |
互換性: | 2.0.51 以降 |
要求のあった URL がディレクトリを指すかどうかを、
mod_dir
が調整するべきかどうかを
DirectorySlash
ディレクティブで設定します。
典型的には、ユーザが末尾のスラッシュ無しでリソースへのリクエストを発行し、
そして、そのリソースがディレクトリを指していた場合、mod_dir
は、末尾にスラッシュを付加した上で同じリソースにリダイレクトさせます。
この挙動には幾つか理由があります:
mod_autoindex
が期待通りに動く。mod_autoindex
の生成するリンクはパスを出力しませんので、スラッシュがない場合は間違ったパスを
指してしまうことになります。DirectoryIndex
は、
末尾にスラッシュがついているリクエストについてのみ評価される。とはいえ、もしこういった効果を望まない、かつ、 上記のような理由が当てはまらない場合は、リダイレクトを次のようにしてオフにできます:
# see security warning below!
<Location /some/path>
DirectorySlash Off
SetHandler some-handler
</Location>
末尾のスラッシュでのリダイレクトをオフにすると、結果的に情報漏洩を
招くことになるかもしれません。
mod_autoindex
が有効 (Options +Indexes
) で、
DirectoryIndex
が有効なリソース (例えば
index.html
) を指していて、また、要求のあった URL に特別な
ハンドラが設定されていない場合を考えてみてください。
この場合末尾にスラッシュのついているリクエストに対しては index.html
ファイルが返されます。しかしスラッシュのないリクエストに対しては、
ディレクトリの内容一覧を返してしまいます。