CentOS 7.4、Apache 2.4の環境でのディレクトリ内のファイルを一覧表示しない設定方法
CentOS 7.4、Apache 2.4の環境で、Webブラウザでアクセスすると、ディレクトリ内のファイルが一覧で表示されました。
index.htmlを配置すれば表示されなくなります。
サブディレクトリを作成して、サブディレクトリ内にindex.htmlを配置しなかったら、同じようにファイルが一覧で表示されます。
photo credit: Nguyen Vu Hung (vuhung) CentOS 7 64bit 07 via photopin (license)
ディレクトリ内のファイルを一覧表示しない設定方法
対処として、Apacheのhttpd.confを編集します。# vi /etc/httpd/conf/httpd.conf
/var/www/htmlを検索して書き換えます。
編集前
<Directory "/var/www/html">
Options Indexes FollowSymLinks
編集後
<Directory "/var/www/html">
Options -Indexes +FollowSymLinks
Apacheを再起動して完了です。
# systemctl restart httpd.service
注意点
こちらに警告として書かれていますが、Optionsの配下は1つでも+か-をつけたら、すべてに+から-をつけなければなりません。警告 Options で + や - のついたものを、つけないものと組み合わせて指定する構文は、正しい構文ではありませんので、期待する結果にならないことがあります。
core - Apache HTTP Server Version 2.4
これを知らず、当初は以下のように変更してApacheを再起動しました。
結果はエラーが発生して、悩まされました。
Options -Indexes FollowSymLinks