エックスサーバーでの、index.html
ファイルと index.php
ファイルの取扱いについて説明します。優先順位の話になります。
1. 質問です。
エックスサーバー上のあるディレクトリが、https://example.com/
というURLに紐付けられているとします。
すなわち、このディレクトリに foo.html
というHTMLファイルを置けば、https://example.com/foo.html
というURLでアクセスすることができる状況です。
この時、このディレクトリに index.html
というファイルがあれば、このファイル名は通常省略できるので、https://example.com/
というURLそのままでアクセスすることができます。
さらに、このディレクトリに index.php
というファイルがある場合、通常PHPが設定されているWebサーバーでは、このファイル名も省略できるので、https://example.com/
というURLでアクセスすることができます。
では、このディレクトリに index.html
と index.php
の両方がある場合、https://example.com/
というURLにアクセスすると、どちらが表示されるのでしょうか?
2. index.html と index.php の優先順位
実は、この時の動作は、そのWebサーバーの設定に依存します。設定次第なのです。
エックスサーバーは共用サーバーですので、自分でWebサーバーの設定を直接変更することはできないのですが、どうやら エックスサーバーでは、index.php
よりも index.html
を優先させているようです。
なので、同じディレクトリに両方のファイルがあった場合は、index.html
が優先されて表示されます。
3. 優先順位を変更する
エックスサーバーにウェブサイトを移行する際、以前の環境では index.php
を優先させていた場合に問題が起きます。たまたま index.html
も配置されていると、そちらが表示されてしまうからです。
このような場合で、index.php
を優先させたい場合は、そのディレクトリ直下の .htaccess
ファイルに、以下を記述しましょう。
DirectoryIndex index.php index.html
これで、優先順位が変更できます。
4. おわりに
この手の知識は知っていないと気付きません。ウェブサイトを引っ越しして、しばらくたって問題が起きてから気付きます。これは、エックスサーバーのマニュアルページに是非とも記述してもらいたい内容です。
他のレンタルサーバー、特に共用レンタルサーバーでは index.html
と index.php
の優先順位に気を付けましょう。
5. 参考
- サーバー仕様一覧 | レンタルサーバー【エックスサーバー】
- ここにある「デフォルトドキュメント」は優先順位の順番?