【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で、という感じかと思います。
【カテゴリ】- 雑談/ニュース/ブログ
【タグ】-