カテゴリー
ウェブ関連

ディレクトリへのアクセスで index of/を表示させない

ディレクトリ一覧の表示を防ぐ方法!レンタルサーバーでは、 index.html がないとディレクトリ内のファイル一覧が表示されることがあります。簡単に対策できる手段を解説します。

レンタルサーバーなどの共有ホスティングでは、 index.html などのファイルが存在しないディレクトリにアクセスすると、ブラウザ上で index of/ という形でディレクトリ内のファイル一覧が表示されることがあります。

これは Apache サーバーのデフォルトの挙動 ですが、セキュリティの観点から望ましくありません。本記事では、ディレクトリ一覧の表示を無効にする簡単な方法を紹介します。

空の index.html を配置

ディレクトリ内に index.html が存在しない場合、空の index.html をアップロードすることで、ディレクトリ一覧の表示を防ぐことができます。

手順
index.html ファイルを各ディレクトリにアップロード。中身は空で構いません。

メリット
サーバーの動作に影響を与えず、手軽に設定可能。
ブラウザでアクセスされた際に 真っ白なページ が表示される。

デメリット
すべてのディレクトリに手動で index.html を配置する必要があるため、管理が手間になる。

.htaccess を使用する

.htaccess ファイルを使ってディレクトリ一覧の表示を禁止する方法です。

Options -Indexes を追加

.htaccess に以下の1行を追加します。

Options -Indexes

効果
index.html などのファイルが存在しない場合、 403 Forbidden エラーが表示される。
すべてのディレクトリに適用可能。

注意点
一部の レンタルサーバーでは Options -Indexes が制限されている 場合があります。

DirectoryIndex の設定

もし Options -Indexes が許可されていない場合、以下の .htaccess 設定を試してください。

<Files ~ "^\\.(htaccess|htpasswd)$">
    deny from all
</Files>

効果
index.html 、 index.htm 、 index.php のいずれかが存在しない場合、 403 Forbidden エラーが発生する。
Index of/ の一覧表示を回避できる。

Apache 設定ファイル httpd.conf で制御する

VPS や専用サーバーを使用している場合、 Apache の設定ファイルを直接編集することで、ディレクトリ一覧の表示を無効にできます。ほとんどの場合、/etc/httpd/conf/httpd.confに存在します。

<Directory "/var/www/html">
    Options -Indexes
</Directory>

設定を反映させるために Apache を再起動します。

systemctl restart httpd

効果
index.html などのファイルがない場合、 403 Forbidden エラーが表示され、 Index of/ の一覧は表示されない。

注意
共有レンタルサーバーでは httpd.conf の編集権限がないため、この方法は利用できないことが多い。

結論

レンタルサーバー・共有ホスティング
.htaccess で Options -Indexes を設定します。
使えない場合は index.html を配置。

VPS ・専用サーバー
httpd.conf を編集するのが最適。

環境に応じて適切な方法を選択し、ディレクトリ一覧の表示を防止しましょう!

profile image

執筆:R3098

WEB サービス構築・監修が生業です。 WordPress 関連では Aurora Heatmap などプラグイン開発も行っています。悩めるサイト運営者の無料相談受付けます!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトは reCAPTCHA によって保護されており、Google のプライバシーポリシー および 利用規約 に適用されます。

reCaptcha の認証期間が終了しました。ページを再読み込みしてください。