ディレクトリの内容を見せない

URLに、ディレクトリまでしか指定しなかった場合、お使いのレンタルサーバではどのようにブラウザーに表示されますか? そのディレクトリに存在するファイルの一覧が表示されますか? それとも「Forbidden」のステータスが表示されますか?

figure1

レンタルサーバによって、サーバのデフォルトの設定はまちまちです。もし、お使いのサーバで「.htaccess」使えるのであれば、ご自分である程度指定することができます。ここではその方法をご説明します。

ファイル一覧を見せないようにするには

お使いのサーバが、ファイル一覧を見せるようになっている場合、それを見せないようにするにはどうするかをご説明します。一番簡単なのは、各ディレクトリ内に「index.html」を用意すればそれでいいわけですが、いちいちすべてのディレクトリに意味の無い「index.html」を用意するもの手間です。

.htaccess」を使えば、すべてのディレクトリに対してファイル一覧を見せないようにすることができます。書き方は2通りありますので、それぞれ説明します。お好きなほう、もしくはお使いのサーバで動作するほうを選んでください。

IndexIgnore

まずはテキストエディターを開いて以下の1行を書いてください。

IndexIgnore *

そして、適当な名前で保存してください。次にそのファイルを、ご自分のホームディレクトリにASCIIモードでアップロードしてください。

次に、アップロードした先ほどのファイルを「.htaccess」という名前に変更してください。これで完了です。なぜ、FTPでアップロードした後にファイル名を変更するかというと、Windows上では「.htaccess」というファイル名で保存できないからです。みなさんの環境によっては、ファイル名のサイトに「.txt」とついてしまう場合もあります。

ファイル名を変更したら、該当のディレクトリに対してアクセスしてみてください。ただし、そのディレクトリ内に「index.html」がある場合には、確認できませんので、「index.html」がないディレクトリにアクセスしてみてください。下図のように何も表示されなくなります。

figure2

Options -Indexes

IndexIgnore では、ファイルの一覧機能は有効になったままで、表示させないファイルパターンを指定するという方法でしたが、ここでは、ファイル一覧機能自体を無効にしてしまうという方法をご紹介します。IndexIgnore のときと同様に .htaccess に以下の1行を記述してサーバにアップロードして下さい。

Options -Indexes

もしこの設定が有効になると、ブラウザーでアクセスした際には、403 Forbidden と表示されるはずです。