どうしてファイル名を省略するとindex.htmlが表示されるのか?

例えば、「http://www.yahoo.co.jpと入力してヤフーのウェブサイトへアクセスすると、自動的に「http://www.yahoo.co.jp/index.html」が表示されます。

これは、一体どういう仕組みなのでしょうか?サイト製作者がページに何か記述をしているのでしょうか?

実は、ウェブサーバーの設定がそうなっているので自動的に表示されるのあって、ページ自体に何かを記述しているわけではありません。

つまり、ファイル名を指定せずにディレクトリを指定した場合に、どのファイルを参照するのかを、ウェブサーバーにあらかじめ設定しているのです。

ウェブサーバーのデファクトスタンダードであるApache(アパッチ)の場合は、デフォルトで「index.htm」「index.html」を参照する設定になっています。レンタルサーバーの場合は、これに「index.shtml」「index.php」などが追加されていることが多いです。

この設定を変更するには、レンタルサーバーが用意しているツールを使うか、「.htaccess」という設定ファイルを編集する必要があります。ここでは「.htaccess」については詳しく述べません。興味のある方は調べてみてください。

Yahoo:.htaccess

Google:.htaccess

もし設定されているファイルがサーバー上に存在しない場合は、そのディレクトリにあるファイルを一覧で表示されてしまうことがあります。(ウェブサーバーの設定によっては)

ディレクトリの中身がそのまま表示してしまうのはセキュリティー上好ましいことではないので、レンタルサーバー側で表示しないように設定してあることがほとんどですが、もし、ディレクトリの中身がそのまま表示されていまうようであれば、ダミーの「index.html」を配置することでこれを防止することができます。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です