ディレクトリインデックスは、次の二つのうちどちらかが利用されます:
index.html
というファイル名を使います。このファイル名は、
自動的なインデックス生成機能を削除 (もしくは交換) できるように、この二つの機能は分離されています。
なお http://servername/foo/dirname
という URL
へのリクエストがあった際に、dirname
というディレクトリがあれば、「最後にスラッシュをつけた形」の URL
へのリダイレクトを送出します。
ディレクトリへのアクセスはスラッシュで終わっている必要があり、
mod_dir
は、http://servername/foo/dirname/
へのリダイレクトを送出することになります。
クライアントが、ディレクトリ名の最後に「/」
を指定してディレクトリインデックスを要求する場合に探すリソースのリストを
Indexes
オプションがセットされている場合、ディレクトリのリストを生成します。
http://myserver/docs/
へのアクセスがあり、
http://myserver/docs/index.html
が存在すれば、この URL が返されます。
もし存在しなければ、ディレクトリのリストが返されます。
注: ドキュメントが同じディレクトリ内に存在するは必要ありません。
とした場合、index.html
と index.txt
のどちらもディレクトリ内に存在しない場合、CGI スクリプト
/cgi-bin/index.pl
が実行されます。
要求のあった URL がディレクトリを指すかどうかを、
典型的には、ユーザが末尾のスラッシュ無しでリソースへのリクエストを発行し、
そして、そのリソースがディレクトリを指していた場合、
とはいえ、もしこういった効果を望まない、かつ、 上記のような理由が当てはまらない場合は、リダイレクトを次のようにしてオフにできます:
末尾のスラッシュでのリダイレクトをオフにすると、結果的に情報漏洩を
招くことになるかもしれません。
Options +Indexes
) で、
index.html
) を指していて、また、要求のあった URL に特別な
ハンドラが設定されていない場合を考えてみてください。
この場合末尾にスラッシュのついているリクエストに対しては index.html
ファイルが返されます。しかしスラッシュのないリクエストに対しては、
ディレクトリの内容一覧を返してしまいます。