Webサーバーの設定によっては、フォルダの中にあるファイル一覧がそのまま表示されてしまうことがあります。これを放置すると、意図しないファイル名や構成が外部から見えてしまう場合があります。
そのような表示を防ぐためによく使われるのが、.htaccessによるディレクトリ一覧表示の禁止設定です。このページでは、初心者の方にも分かりやすいように、設定の意味・書き方・注意点を順番に解説します。
この記事で分かること
ディレクトリ一覧表示とは、あるフォルダにアクセスしたときに、その中のファイルやサブフォルダの一覧がブラウザに表示される状態のことです。
たとえば、そのフォルダ内に index.html や index.htm などのトップページ用ファイルが存在しない場合、サーバー設定によっては自動的に一覧が表示されることがあります。
表示例
フォルダ内のファイル名がそのまま一覧表示され、クリックして閲覧できる状態になることがあります。
ディレクトリ一覧表示が有効になっていると、利用者に見せる予定のないファイル名や構成が外部から分かってしまうことがあります。
| 見えてしまうもの | 問題になりやすい点 |
|---|---|
| ファイル名 | 作業中のページ名やバックアップファイル名が見えることがあります。 |
| フォルダ構成 | サイト内部の構成が推測されやすくなります。 |
| 画像や資料 | 本来リンクしていないファイルへ直接アクセスされる場合があります。 |
必ずしも重大な事故につながるとは限りませんが、不要な情報を見せないという意味で、一覧表示は禁止しておくのが一般的です。
ディレクトリ一覧表示を禁止するには、対象フォルダにある .htaccess に次の1行を記述します。
Options -Indexes
この設定により、index ファイルが存在しないフォルダへアクセスされた場合でも、ファイル一覧を表示しないようにできます。
すでに .htaccess を使っている場合は、その中に追記します。新しく作成する場合は、ファイル名を .htaccess にして保存します。
<IfModule mod_autoindex.c> Options -Indexes </IfModule>
このように書いておくと、一覧表示に関係するモジュールが有効な環境でのみ設定が適用されるため、少し安全に書きやすくなります。
サーバー環境によっては Options -Indexes だけで問題なく動作します。複雑にしすぎたくない場合は、まずは1行の設定から試す方法でも十分です。
一覧表示を禁止したいフォルダに .htaccess を置きます。そのフォルダ以下にも設定が影響することが多いため、まとめて制御したい場合は上位ディレクトリに置く方法もあります。
たとえば、サイト全体で禁止したいなら公開ディレクトリ直下に設置し、特定のフォルダだけ対象にしたいならそのフォルダ内に設置します。
設定後は、index ファイルが入っていないフォルダにブラウザでアクセスして確認します。
表示内容はサーバーによって少し異なりますが、一覧が見えなくなっていれば目的は達成できています。
.htaccess の記述を間違えると、500 Internal Server Error になることがあります。記号やスペース、全角文字の混入には注意してください。
一覧表示を防ぐ方法としては、index.htm や index.html を置く方法もあります。ただし、それだけでは「そのページを表示する」動作になるため、意図的に案内ページを作る場合には向いていますが、単純に一覧を出したくないだけなら .htaccess の設定が分かりやすいです。
| 方法 | 特徴 |
|---|---|
| .htaccessで禁止 | 一覧表示そのものを無効にできます。 |
| indexファイルを置く | 一覧の代わりに任意のページを表示できます。 |
ディレクトリ一覧表示は、意図せず有効になっていることがあります。.htaccess に Options -Indexes を記述することで、ファイル一覧が見えてしまう状態を防ぐことができます。
セキュリティ対策としては基本的な内容ですが、不要な情報を外部に見せないために役立つ設定です。公開ディレクトリの運用では、早めに確認しておくと安心です。
WISNET / わいずねっと のレンタルサーバー
用途に合わせて2つのレンタルサーバープランをご用意しています。