Tips記事
» 2001年11月27日 00時00分 UPDATE

index.htmlが無いとディレクトリが丸見えになってしまう

[木田佳克,ITmedia]

 http://www.xxxxxx.jp/images/などと指定してWebブラウザから見てみると,images/の階層にはindex.htmlが無いためにディレクトリが丸見えになることがある。このような場合には,ダミーのindex.htmlを置いておけばよいなどという定説もあるが,サーバ側の設定で根本的に解決することも可能だ。

画面
ほとんどのApacheの標準設定では,このようにindex.htmlが存在しないディレクトリにアクセスするとファイル一覧が見られてしまう

 Apacheではimages/ディレクトリにアクセスがあった場合,Directory_Indexディレクティブで指定されたファイル(ほとんどの場合は,index.htmlなど)を探す動作が行われる。存在しない場合には,対象のディレクトリでIndexesオプションが有効になっているかどうかが判別される。このIndexesオプションを操作すれば,ファイル一覧ではなくエラーを返すことが可能なのだ。

# vi /usr/local/apache/conf/httpd.conf

〜中略〜

<Directory "/usr/local/apache/htdocs">
Options Indexes Includes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

〜後略〜

 Red Hat Linuxでは,「/etc/httpd/conf/httpd.con」になるが,上記のようにApacheの設定ファイルを編集すればよい。ドキュメントルートを定義している個所を見つけ出し,「Indexes」が含まれているかどうかを確認しよう。ファイル一覧を表示させたくない場合には,Indexes項目を削除してApacheを再起動させればよい。

# /etc/rc.d/init.d/httpd restart
または,
# /usr/local/apache/bin/apachectl restart

画面
Indexesを無効にすると,このようにファイル一覧は表示されずにエラーが返されるようになる

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ