apache2でindex.htmlが無いときにディレクトリの中身を見せない設定
ブラウザでWebサーバのURLを打つとき、http://〜〜〜.html というように具体的なファイルを指定するのではなく、ディレクトリ名でアクセスした場合、デフォルトでは index.html をGETすることになっている。
つまり、サーバ側に index.html がないと、エラーになってしまう。エラーの際に、サーバの指定したディレクトリの中身が見えてしまう。これはセキュリティ的によくない。
そこで、index.html がない場合でも、ディレクトリの他のファイルが見えないような設定にする。設定ファイルは /etc/httpd/conf/httpd.conf とかに全部書かれているんじゃなく、/etc/apache2/ に複数ある。
/etc/apache2/sites-available/default の
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
という部分の、
Options Indexes FollowSymLinks MultiViews
の行を、
Options -Indexes FollowSymLinks MultiViews
とする。わかりにくいけど、"Indexes" を "-Indexes" と変更している。
こうすると、index.htmlがなくてもディレクトリの中身が見られなくなる。