Linux(CentOS 6) - Apacheで「Index of /」ページが表示されないようにする方法
Apacheで構築したサイトをブラウザで閲覧していると、以下のような「Index of /」ページが表示される場合がある。
これは、ブラウザでアクセスしたURLのディレクトリ直下にインデックスページ(index.htmlなど)が存在しない場合にディレクトリ名のみでアクセスした時に表示されるページで、ディレクトリ内のファイル、ディレクトリすべてが丸見えになってしまう。
そのため、このページが表示されるとセキュリティ上問題であったりするため、意図的にこのページを見せたい、といった事情がない限り、この「Index of /」ページは表示されないようにしておいた方がよい。
「Index of /」ページを表示しないようにするには、以下の方法がある。
(1)各ディレクトリ直下にインデックスページを必ず設置する。
※インデックスページとは、httpd.confなどで設定するDirectoryIndexで指定するファイル。
DirectoryIndexの設定例:DirectoryIndex index.html index.html.php
(2)ApacheのOptions ディレクティブのIndexes機能を無効化する。
《参考》core - Apache HTTP サーバ Options ディレクティブ
http://httpd.apache.org/docs/2.2/mod/core.html#options
Indexesもし、URL がディレクトリにマップするリクエストであって、 且つ DirectoryIndex で指定したファイル (例えば、index.html) が ディレクトリ内に無ければ、mod_autoindex が ディレクトリ内の一覧を整形して返します。
httpd.conf修正前 ※/etc/httpd/conf/httpd.confより一部抜粋
<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
httpd.conf修正後 ※/etc/httpd/conf/httpd.confより一部抜粋
<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options -Indexes FollowSymLinks ←「Indexes」の左側に「-」(ハイフン)を追記する。
以下のようにApacheを再起動すると、「Index of /」ページが表示されない設定に変わる。
[root@test conf.d]# /etc/rc.d/init.d/httpd restart
設定が正しく反映された後は、インデックスページが存在しないディレクトリにディレクトリ名のみでアクセスした場合、以下のようなページ(403 Forbiddenページ)が表示されるようになる。