index.htmlとは?

今回は、「index.html」とは何か?というお話です。

ホームページを公開する際、ページの内容に応じて様々な名称のHTMLファイルを作成します。

会社概要のページであれば「company.html」地図ページであれば「map.html」など様々ですが、
必ず作成するHTMLファイルがありあます。
それが、index.htmlというもので、とても重要なHTMLファイルになります。

例えば、サイトのトップページのURLについて考えてみます。

トップページの階層には、必ずindex.htmlを置くので、
アクセスする際のURLは、https://example.com/index.html となります。

が、実際には、
ほとんどの場合、https://example.com/ の様にスラッシュ(/)終わりのURLにアクセスします。

これは、スラッシュ終わりのURLにアクセスすると、自動でindex.htmlを探して画面に表示してくれるためで、
Apache(WEBサーバ)側でそのように設定されています。
これにより、わざわざブラウザのアドレスバーにindex.htmlまで打たなくてもページを表示できるようになっています。

つまり、index.htmlというファイルがあれば、
そのファイルをトップページとして自動で認識してくれような便利な設定になっています。

index.html以外のindex(index.htmやindex.php、index.cgiなど)

最近は、PHPでサイトにプログラムを組み込むことが増えたので、
index.htmlではなく、index.phpをトップページに置いていることも多くなりましたが、
その場合も、index.phpを自動で認識してサイトを表示させてくれていると思います。

これは、index.htmlが置かれていない場合には、index.phpを探しにいくように設定されている為です。

正確には、index.htmやindex.cgi、index.shtmlなども自動で探しに行くように設定されていることが多く、
どのファイルをトップページとして優先的に表示するのかも設定されています。

これらの読み込む順番を変更することも可能で、一般的には、.htaccessを使って設定できます。

index.html、index.phpの読み込み順を変更

何かの理由で、
index.html、index.phpを認識する順番を変更した場合があります。

その場合には、上記でも触れたように、.htaccessを使って設定するのが簡単です。

具体的には、

DirectoryIndex index.php index.html

という1行を追加するだけです。

これにより、
index.phpを優先的に探しに行くようになります。

もし、index.htm、index.cgi、index.shtmlなど、他のファイルの優先順位も設定する場合には、

DirectoryIndex index.php index.html index.htm index.cgi index.shtml

index.htmlを自動で探しに行ってくれない場合

もし、index.htmlやindex.phpを自動で認識してくれない場合があるかもしれないです。

その場合には、優先順位の変更と同様、
.htaccessに

DirectoryIndex index.html index.php

の1行を追加して下さい。

最近の共用サーバであれば、
100%このindex.htmlindex.phpを自動で認識するように設定されているので、
こちらの設定を行う機会はあまりないと思いますが。

Ruby(index.rb)やPython(index.py)をトップページとして認識させる

最近は、Ruby(Ruby on Rails)やPythonでサイトを構築する機会も増えてきました。

Rubyの場合だと「index.rb」、Pythonの場合だと「index.py」というファイルを作成するので、
これらをトップページとして認識させたい場合もあります。

この場合も同様、
.htaccessに

DirectoryIndex index.html index.rb index.py

というように「DirectoryIndex」にindex.rbindex.pyを追加すればOKです。

最後に

これらの設定変更は、Apacheの設定ファイルであるhttpd.confで設定することも可能です。

ただし、あまり大元はいじりたくないので、基本的には、.htaccessで設定するようにしましょう。

また、レンタルサーバによっては、httpd.confの編集は勿論のこと、.htaccessの使用も許可されていない場合もあります。
その場合には、これらの設定変更はあきらめて下さい。