icon
Let's create! WordPressサイト制作とメンテ/エラー対応から、PHP/CSS/javascriptプログラミング、動画・音・イラスト等制作まで扱うコラム

【IT小ネタ・サーバー】Apacheでファイル一覧が出てしまうのを非表示にする方法

更新: 2025/07/09 1933文字

今回は需要があるかどうかわかりませんが、Apacheサーバーに関する話題です。『ファイル一覧が出てしまう』という件で管理人はindex.html置いたりしてましたが、他にも対応方法があるのでご紹介(環境やサーバーの権限などによっては使えないものもあります)。早速確認していきましょう。

セキュリティ的に避けたい、Apacheでファイル一覧が出てしまう例

管理人がローカルでつかっているxamppなんですけど、学習用に『study』というフォルダを作って、各種ライブラリやコードの動作確認を行っています。現段階で『http://localhost/study/』にアクセスすると、こんな感じでファイル一覧がでます。ネットを見ている中で、こういうのに遭遇した方も結構いるかなと思います。

ディレクトリやファイルの構成が丸見えになってしまうので、セキュリティ上よろしくなく、避けておきたい点です。

Apacheでファイル一覧が出てしまうのを非表示にする方法いくつか

Apacheファイル一覧非表示にする方法はいくつかありますが、『マネージドクラウドにサーバー立てた場合・レンタルサーバーの場合』など、環境や権限によって対応する方法が異なると思います。状況に合わせて対応しましょう。

OptionsのIndexesをカット(apache/conf/httpd.confファイル)

xamppなんですけど、httpd.confファイルで『C:/xampp/htdocs』でIndexes表示可になっていました。このIndexesオプションをカットして、コントロールパネルからサーバー再起動してみます。htdocs以下全部一気に対応。

forbidden表示になりました。処理速度は計ってないんでなんともいえませんが、.htaccessよりパフォーマンスがよいらしいです。レンタルサーバーでは権限がないケースが多いと思います。

Options -Indexesを記載する(.htaccessファイル)

上と書き方がかわっていますが、Apache Optionsディレクティブでは『-』をつけて打ち消すことができます(-Indexesだとファイル一覧非表示)。studyのディレクトリに、画像のように記載した.htaccessファイルを置いてみますか。

httpd.confに書いた時と同様にforbidden表示になりました。httpd.confファイルを操作する権限がない場合は、これかindexファイル置くか、のような感じでしょうか。

mod_autoindexのコメントアウト(apache/conf/httpd.confファイル)

『LoadModule autoindex_module modules/mod_autoindex.so』という行があります。この行が一覧表示のモジュールをロードとのことなので、この行をコメントアウトしてサーバー再起動を行ってみますか。

挙動が少し変わってNot Found(見つからない)になりました。indexファイル置かないで直接ディレクトリにアクセスした場合は403になる弊害はありますが、そういうのを忘れずに行うフローになっていればよさそうです。

indexファイルを置いておく

定番ですが、indexファイルを作っておいておくことにより、ファイル一覧が出なくなります。

このように。ちなみにindex.phpやindex.html index.cgiなど複数ある場合について、DirectoryIndexディレクティブを書き換えて読み込み優先順を変えられます。管理人は基本的にindexはひとつだけ置くので、ほとんど使ったことはありませんが。

あとがき・まとめ

  • Apacheでは設定によりファイル一覧がでてしまうことがあり、セキュリティ上よろしくない
  • httpd.confファイルでファイル一覧を出さない設定に変えられる
  • httpd.confファイルの操作権限がない環境では、.htaccessやindex.htmlを使って対応できる

まとめると、こんなところでしょうか。webの現場でも、クライアントがレンタルサーバーを選定した場合は.htaccessで、VPSやマネージドクラウドの時はhttpd.confで、という感じかと思います。


【カテゴリ】- 雑談/ニュース/ブログ
【タグ】-

関連記事