Xserverにファイルを置いたのに、何度開いても「404 Not Found」。
public_html も触っていない。
フォルダ構成もいじっていない。
難しい設定も何もしていない。
それでも、ずっと404。
正直、このとき本気で思いました。
「もう無理かもしれない」
でも、原因はとんでもなく単純でした。
私は、違うファイルを開いていました。
私は「拡張子」という言葉を知りませんでした
後から知った言葉です。
ファイル名の最後に付いている
.html.php
この部分を拡張子と言うらしいです。
でも当時の私は、
「文字がちょっと違うだけ」
くらいにしか思っていませんでした。
何が起きていたのか
最初に作ったのは
index.html
その後、保存機能を付けるために
index.php
に変更しました。
サーバー上のファイルも、ちゃんと php に変更していました。
でも私は、
URLを一度も変えていなかった。
つまりブラウザはずっと
古い index.html を見に行っていた。
でもそのファイルは、もう中身が違う。
だから404になっていました。
「ファイルを開いている」感覚がなかった
今なら分かります。
URLは「そのファイルを直接開いている」ということ。
でも当時は、
サイトを開いている感覚
しかありませんでした。
この感覚のズレが、404の原因でした。
404の本当の意味
404はエラーではなく、
「そのファイルは、ここにはありませんよ」
というサーバーからの正しいメッセージ。
サーバーは何も悪くなかった。
私が見ている場所が違っていただけでした。
もし今、404で詰んでいるなら
難しい設定を疑う前に、これだけ確認してください。
今開いているURLは、本当にそのファイル名ですか?
これだけで解決する人、かなりいると思います。
私がそうだったので。
確認方法は、実はとても簡単でした。
サーバーにあるファイル名を見る
ブラウザのURLの最後を見る
この2つが、完全に同じかどうかを確認するだけです。
例:
サーバー:index.php
URL:/index.html
これ、違いますよね。
これだけで404になります。
そして、もうひとつ。
私はここでも、盛大にハマりました。
パソコンの設定によっては、
.html や .php の部分(拡張子)が表示されないことがあります。
つまり、
自分では index.php にしたつもりが、
実際のファイル名は
index.php.txt
になっていました。
当然、これも404になります。
当時の私は、
「ちゃんと php にしたのに、なんで!?」
と本気で混乱していました。
後から知りました。
拡張子が隠れていただけでした。
次の記事では、
なぜパソコンでは保存できたのに、スマホでは保存できなかったのか
ここを書きます。
実はこれ、もっと深い原因がありました。


コメント