「index.phpをアップしたのに反映されない」
「なぜか古いページが表示される」
その原因は、かなりの確率でこれです。
index.html と index.php が両方存在している
結論:先に読まれた方だけが表示される
サーバーはトップページにアクセスされたとき
【 https://example.com/ 】
あらかじめ決められた順番でファイルを探します。
そして、最初に見つかったファイルだけを表示します。
実際の状態
/public_html/
├ index.html
├ index.php
この状態では、どちらか一方しか表示されません。
エックスサーバーでの挙動
初期状態では、index.html が優先されることが多いです。
つまり
- index.html は表示される
- index.php は存在していても表示されない
よくあるトラブル
WordPressを入れたのに表示されない
WordPressは index.php を使います。
しかしサーバーに index.html が残っていると、そちらが優先されます。
結果として、WordPressが表示されません。
修正したのに反映されない
index.php を編集しても画面が変わらない場合、
実際には index.html が表示されている可能性があります。
なぜか昔のページが出る
古い index.html が残っているだけ、というケースが多いです。
解決方法(これだけでOK)
方法①:index.html を削除(最も簡単)
index.html → 削除
これで index.php が表示されるようになります。
方法②:名前を変える
index.html → index_old.html
バックアップを残したい場合に有効です。
方法③:優先順位を変更(上級者)
.htaccess に以下を追加します。
DirectoryIndex index.php index.html
これで index.php を優先できます。
なぜこんなことが起きるのか
サーバーはトップページにアクセスされたとき、
「どのファイルを表示するか」を決める必要があります。
そのため「DirectoryIndex」という優先順位のリストを持っています。
この順番に従ってファイルを探し、最初に見つかったものを表示します。
イメージで理解する
- URLは建物の住所
- indexファイルは受付
【 https://example.com/ 】
住所までは分かっているが、どの部屋かは指定されていない状態です。
そのためサーバーは受付(indexファイル)を探します。
- index.html が見つかれば、それを表示
- index.php はその時点で探されません
チェックリスト(1分で確認)
- index.html が残っていないか
- index.php が存在するか
- 表示したいファイルはどちらか
迷った場合は、index.html を一度削除して確認するのが確実です。
まとめ
- index.php と index.html が両方あると、表示されるのはどちらか一方のみ
- 多くの環境では index.html が優先される
- 解決方法はシンプルで、index.html を削除するか名前を変更するだけ
これだけで「反映されない」「古いページが出る」といった問題は解消できます。

コメント