.htaccessでディレクトリのデフォルトページを変更する方法
2007.10.03
error この記事は最終更新日から17年以上が経過しています。
大半のWebサーバーでは、URIの末尾にファイル名を指定せずに、ディレクトリ名までを入力してアクセスした際には index.html や index.htm 等を表示するよう設定されています。
この設定は、 .htaccess を使うことによって簡単に変更することができます。
例えば、
DirectoryIndex index.php
と書いた .htaccess を、 sample/ というディレクトリに置いた場合、
http://www.servername.com/sample/
は、http://www.servername.com/sample/index.php へのアクセスとなります。
別に index.*** でなくても、
DirectoryIndex toppage.html
とすれば、 http://www.servername.com/sample/toppage.html へのアクセスとなります。
また、複数のファイルを指定することも可能で、
DirectoryIndex index.php index.cgi index.shtml index.html index.htm
と設定した場合、index.php がない場合は index.cgi 、それもなければ index.shtml 、またもやなければ index.html 、これまたなければ index.htm へのアクセス、という風にサーバーが指定したファイルを左から順に探してくれます。
.htaccess は、設置したディレクトリ以下の全てのディレクトリに有効ですので、トップディレクトリにこういう具合に複数指定して置いておくと、その下の各ディレクトリに必要に応じて php なりcgi なり html なりを置くことができるので便利です。
また、そうして設定した各ファイルが全てない場合の挙動もサーバーの設定に依存します。
ディレクトリ内のファイルの一覧を自動的にリストアップするよう設定されているか、 403 Forbidden を返すよう設定されているかのどちらかが一般的です。
自動でリストアップする機能は、使い方によっては非常に便利(上記の例のようにわざわざページを用意しなくてもリストアップしてくれる)なのですが、意図せずディレクトリの中身を見られてしまって個人情報流出、という冗談みたいなとんでもないことをやらかすお間抜けな企業が後を断ちません(※そもそもブラウザでアクセスできる場所に個人情報が置いてあること自体が大問題です)。
基本的に 403 Forbidden を返すように設定する方が一般的な気がします。
さて、この設定も .htaccess にて変更可能です。
Options +Indexes
とすると、ディレクトリ内のファイルを一覧表示します。
逆に、
Options -Indexes
とすると、403 Forbidden を返します。
というわけで、基本的には403を返すようにしておき、リスティングが必要なディレクトリのみを +Indexes とするのが一番安全かと思います。
.htaccessで特定のディレクトリのみ「/」を「/index.html」にリダイレクトさせる
2023.05.09
指定したディレクトリのみ、トップページへのアクセスを/index.htmlにリダイレクトさせる方法を紹介します。
.htaccessを使ったリダイレクト設定方法—URI変更時の対応を簡単に
2023.05.01
Webサイトの構成変更や移転時に便利なリダイレクト設定方法をご紹介します。.htaccessを使って、URIが変更になった場合でも旧ページから新ページへスムーズに転送できるように設定する方法を解説します。
IPアドレスでアクセス制限する方法を.htaccessで実装
2023.04.07
.htaccessを使って、特定のIPアドレスからのアクセスを制限する方法を紹介します。指定したIP以外のアクセスをブロックしたり、逆に特定のIPを拒否する方法も解説。さらに、Requireディレクティブを使った設定方法も合わせて紹介します。
さくらのレンタルサーバーでPHPを「.html」などの拡張子で実行する方法
2009.09.20
さくらのレンタルサーバーでは、PHPがCGIとして動作しているため、通常の.htaccess設定ではPHPを「.html」拡張子で実行できません。この記事では、特定の手順を踏んでPHPを動作させる方法を詳しく解説します。