ディレクトリ制御
ディレクトリにいろいろな指定を行います。
■ 主な利用例
通常、スラッシュ(/) で終わるアクセスがあったときは、index.html ファイルが代替して呼ばれますが、DirectoryIndex を設定することで index.html 以外のファイルを呼び出すことができます。
DirectoryIndex index.cgi index.html index.shtml top.htm
スラッシュ(/) で終わるアクセスがあったとき、サーバは DirectoryIndex で記述されているファイルを順に探していき、見つかればそのファイルを表示します。
通常、スラッシュ(/) で終わるアクセスがあったときに、index.html ファイルが代替して呼ばれますが、index.html ファイルが見つからない場合に、次のようなディレクトリのファイル一覧が表示されます。これは、Apache の機能です。
Index of /~lab/ Name Last modified Size Description
Parent Directory 13-May-2001 20:16 -
home.html 13-May-2001 07:35 12k
profile.html 13-May-2001 07:35 25k
infomation.html 13-May-2001 07:35 1k
このインデクス表示は、サイトオーナーの意図に反してファイル一覧がすべて見えてしまいます。本当にこういうことがしたいと思うときはよいのですが、そうでない場合はセキュリティの観点から、中止した方が無難です。またパフォーマンスの観点からしても、インデクス表示を OFF にすると、ディレクトリの走査、ファイル情報の取得、アイコンへのアクセス、などなどのオーバーヘッドを節約することができます。次の設定は、インデクス表示を禁止する .htaccess の設定です。
Options -Indexes
この設定にしておくと、スラッシュ(/) で終わるアクセスがあったときに、index.html ファイルがない場合、403 Forbidden を返します。
■ リファレンス
DirectoryIndex local-url local-url ...
DirectoryIndex index.html index.htm index.cgi
クライアントがディレクトリ名の終わりのスラッシュ (/) を指定してアクセスしたときに、サーバが探すリソースを設定します。通常は、index.html に設定されています。いくつか指定した場合には、先に書かれたものから優先して探します。
もし全て見つからなければ、Options Indexes でディレクトリ一覧の表示が許可されていれば、ディレクトリのファイルリストを表示します。許可されていなければ 、403 Forbidden を返します。
Options option option ... Options [+|-]option [+|-]option ...
# すべてのディレクトリオプションを許可 Options all # ExecCGI と Includes のみを許可し、他をすべて不許可にする Options ExecCGI Includes # ExecCGI は許可し、Includes を不許可にする。その他の設定は引き継ぐ Options +ExecCGI -Includes
許可するディレクトリオプションを指定します。option には次のようなものが選べます。option の前に、+ か - の記号が置かれているとき、標準設定からの差分を意味します。