【第2話】Xサーバーに置いたのに、404しか出なかった本当の理由

Webアプリ開発記録

この記事は初心者が試行錯誤した記録です。セキュリティや設計は未熟な部分があります。実運用・公開用途ではそのまま使わないでください。

Webアプリの画面は表示できたのに、
PHPを置いて「保存できるようにする」ところから、地獁が始まりました。

ChatGPTに言われた通りに、

  • PHPファイルを作って
  • Xサーバーの public_html に置いて
  • URLを開く

なのに、出るのはこれだけ。

404 Not Found

何回やっても、404。

置き場所も合ってる。
ファイルもある。
エラーも出ない。

なのに、開けない。

意味が分かりませんでした。


「public_htmlの外に置いてるんじゃ?」→違う

調べると、みんなこう書いてあります。

public_html の中に置きましょう

ちゃんと入ってる。

違う。


「フォルダの中に入れてるんじゃ?」→違う

フォルダも合ってる。

違う。


じゃあ、何が違ったのか

原因は、これでした。

ファイル名。

正確に言うと、

拡張子。

でもその時の私は、拡張子が何か知りません。


何が起きていたかというと

途中で、ファイル名をこう変えました。

nekolog.html → nekolog.php

でも私は、

「最後の文字がちょっと変わった」
くらいにしか思ってませんでした。


URLは、昔のままだった

ブラウザで開いていたのは、ずっとこれ。

https://example.com/nekolog.html

でも、サーバーにあるのは

nekolog.php

当然ですが、

.html のファイルはもう存在しない。

だから、404。


でも本人は気づかない

なぜなら、

  • ファイルはある
  • 置き場所も合ってる
  • コードも合ってる
  • サーバーも合ってる

だから、

「どこが間違ってるのか、本当に分からない」

状態になります。

これ、初心者が一番ハマる404です。


そして、この事実に気づいた瞬間

URLの最後を

nekolog.html → nekolog.php

に変えたら、

一発で開きました。

あれだけ何時間も悩んだ404が、
たったこれだけで解決しました。


私はこのとき、初めて知りました。

.html.php は、ただの文字の違いじゃない。

サーバーから見たら、まったく別のファイルだということ。

例えるなら、

.html.php は「名前が似ている別の建物」です。

そして、URLはその建物の「住所」。

私はずっと

https://example.com/nekolog.html

という住所に行っていました。

でも、サーバーに置いてあったのは

nekolog.php

という別の建物

サーバーからすると

「その住所に、その建物は存在しません」

だから、404 になります。


さらに、初心者がハマるポイントがあります。

Xサーバーは「Linux(リナックス)」という種類のコンピューターで動いています。

このLinuxは、ファイル名の大文字・小文字を完全に別物として扱います。

たとえば

nekolog.php
Nekolog.php

これは、サーバーから見るとまったく別のファイルです。

でも、私たちが普段使っているWindowsパソコンでは、
この2つは同じように見えることが多いです。

自分のパソコンでは同じに見えていたのに、
サーバーから見ると違っていた。

ここで、多くの初心者が404で止まります。

1文字でも違ったら、サーバーから見ると別物なんです。

コメント

タイトルとURLをコピーしました