さくらのVPS:一覧ページ(Index of) の非表示
さくらのVPS では、ブラウザーでサーバー内にアクセスした際、そこにindex.html などがないと、ディレクトリ内が一覧ページ(Index of)として表示されます。
- ディレクトリ内の、ファイル名やディレクトリ名が、一覧できてしまう
ディレクトリ内の様子が、誰からも見れるのは避けたいので、これを非表示にしました。
- さくらのVPS では、「一覧ページ:表示」が初期設定
- 「一覧ページ:表示」 → 「一覧ページ:非表示」
やりたいこと
ドキュメントルートにある、test ディレクトリ以下を、「一覧ページ:非表示」にする
例えば、ドキュメントルートが、/var/www/html であれば、
- /var/www/html/test 内を、「一覧ページ:非表示」にする
そうすると、ブラウザーで直接 test にアクセスしても、一覧ページが表示されません。
- http://xxx–yyy–zzzz.sakura.ne.jp/test
【注】xxx–yyy–zzzzz は、適宜、各自のhostname に読み替えてください。
そのためには、以下の順番で設定変更します。
- /var/www/html/test/ に、ファイル(.htaccess)を作成もしくは修正
- ファイル(/etc/httpd/conf/httpd.conf)を修正
- Apache 再起動
.htaccess 作成
先ずは、test ディレクトリ内に、.htaccess ファイルを作成します。
- /var/www/html/test/.htaccess
そして、.htaccess ファイルに、以下の1行を記述し保存します。
Options -Indexes
もし既に、その場所に、.htaccess ファイルがあった場合は、上記の1行をファイルの最後に追加します。
httpd.conf 修正
次に、/etc/httpd/conf/httpd.conf ファイルを修正します。
ファイルの最後に、以下の4行を、追加します(3行目はコメントアウトしてます)。
<Directory "/var/www/html/test"> AllowOverride All # AccessFileName .htaccess </Directory>
3行目、AccessFileName のデフォルト値は、.htaccess です。
そのため、AccessFileName を、.htaccess にしたい場合は、3行目は省略可です。
逆に、AccessFileName を、.htaccess にしたい場合に、3行目があると再起動時にエラーとなります。
Apache 再起動
Apache を再起動すると、/var/www/html/test 以下が、「一覧ページ:非表示」になっています。
# systemctl restart httpd
【参考】
- 一覧ページ(Index of)を非表示にする方法|WordPressアップロードフォルダの例(寝ログ)
- 標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド