| 2009年09月01日 |
.htaccessによるファイル一覧の非表示
サーバーによってその仕様は異なりますが、一般的に
http://○○○○.com/フォルダ名/
とURLを指定すると、そのディレクトリに格納されている「index.html」 または、「index.php」が表示されます。
しかし、さくらインターネットなど一部のサーバーでは「index.html」 または、「index.php」 がないディレクトリをブラウザで表示するとファイルの一覧画面が表示されてしまいます。
http://○○○○.com/フォルダ名/
とURLを指定すると、そのディレクトリに格納されている「index.html」 または、「index.php」が表示されます。
しかし、さくらインターネットなど一部のサーバーでは「index.html」 または、「index.php」 がないディレクトリをブラウザで表示するとファイルの一覧画面が表示されてしまいます。

そのディレクトリに格納されている全てのファイルが表示されてしまうので、セキュリティ的にも大変危険です。
「.htaccess」を使用してこのファイル一覧を表示させない方法をご紹介します。
.htaccessファイルを作成し、以下の記述をします。
Options -Indexesこの一行書くだけでindex.htmlなどがない場合、Forbiddenエラーメッセージが表示されます。
しかしさくらインターネットではこちらの使用が禁止されているようです。
その場合、次の方法で設定します。
.htaccessファイルを作成し、以下の記述をします。
DirectoryIndex index.html index.cgi index.php .htこの記述で「/(スラッシュ)」止めのURLでアクセスされた場合に表示させるファイル名の優先順位を指定できます。ディレクトリ内に「index.html」が無ければ「index.cgi」を探しに行き、さらにそれが無ければ、「index.php」をと見ていきます。列挙されているファイル名がどれも存在しなかった場合は「.ht」を追記しておくと404エラー画面が表示されるように設定できます。
意外と見落としがちですが、ファイルの一覧が表示されてしまうのは非常に危険ですのでご注意ください。
参考サイト:http://www.shtml.jp/htaccess/directoryindex.html
