403、404、500、502、503、504がこのプラットフォーム上で実際には何を意味するのか、そしてそれぞれについて具体的に何をすべきかについて説明します。
エラーコードは単なる汎用的な失敗メッセージではありません。スタックのどの層が処理を諦めたのかを教えてくれるもので、それが原因の絞り込みを大きく助けてくれます。502と504は訪問者にとっては同じように見えますが、原因も対処法もまったく異なります。
実際のコードを確認する
トラブルシューティングを行う前に、実際の番号を確認してください。見た目の整ったエラーページが、サーバーが実際に返しているものとは異なる内容を表示していることがあります。
ブラウザで開発者ツールを開き、Networkタブに移動し、ページを再読み込みして、最初のリクエストをクリックしてください。ステータスはHeadersパネルの上部に表示されます。
ターミナルからは次のようにします。
curl -sSI https://yourdomain.com/
これにより、ページ本体をダウンロードすることなく、ステータス行とレスポンスヘッダーが出力されます。ヘッダーは重要です。以下のケースのいくつかは、コードだけでなくヘッダーによって識別されるためです。

要点
| コード | 意味 | 誰の問題か |
|---|---|---|
| 401 | 認証が必要 | パスワード保護が有効になっている |
| 403 | 意図的に拒否された | セキュリティルールがリクエストをブロックした |
| 404 | 見つかりません | あなたのサイト、たいていはルーティングの問題 |
| 500 | アプリケーションがクラッシュした | あなたのコードまたはプラグインの問題 |
| 502 | ウェブサーバーの背後にあるサーバーが失敗した | たいていはあなたのアプリケーションの問題 |
| 503 | 意図的に現在配信を停止している | 停止、一時停止、またはメンテナンス中 |
| 504 | 時間がかかりすぎた | あなたのコードのどこかが遅い |
401 Unauthorized
ページの代わりに、ブラウザのユーザー名とパスワードを入力するボックスが表示されます。これは、そのサイトまたはそのパスに対して基本的なパスワード保護が有効になっていることを意味します。
これを無効にする、または認証情報を取得するには、ウェブサイト からサイトを選び、設定、そして パスワード保護 に進んでください。パスワード保護をご覧ください。
パスワード保護が有効になっていても証明書の更新は引き続き機能するため、これによってHTTPSが壊れることはありません。
403 Forbidden
403は、何かが意図的にリクエストを拒否したことを意味します。このプラットフォームでは、4つの異なる原因が考えられます。
ウェブアプリケーションファイアウォール。 すべてのサイトは、受信リクエストを検査し、既知の攻撃パターンに一致するものをブロックするルールエンジンの背後にあります。これは予期しない403の最も一般的な原因であり、ほとんどの場合、正当ではあるが珍しいリクエスト(長いフォーム送信、複雑なコンテンツを保存するページビルダー、生のコードを投稿するプラグインなど)に対する誤検知です。
ファイアウォールによるブロックの兆候として、サイトの他の部分は問題ないのに、特定の1つの操作だけが毎回403で失敗し、別のブラウザや別のネットワークからでも同じように失敗します。
対処法は、サポートが追加できる、対象を絞ったルールの除外です。ファイアウォールをオフにするスイッチを探し回らないでください。共有ホスティングにはそのようなものは存在しませんし、そもそもそれは正しい対処法ではありません。正確なURL、正確な時刻、そして何をしていたかを記載してチケットを開いてください。サポートチケットの開き方をご覧ください。
地域ブロック。 サイトを特定の国に限定している場合、それ以外の人は全員403になります。設定 の セキュリティ を確認してください。地域ブロックをご覧ください。
IPブロック。 ご自身で セキュリティ の下に追加したもの、またはプラットフォームレベルの不正利用ブロックのいずれかです。
ファイル権限やシンボリックリンクの問題。 これはあまり一般的ではなく、SSH経由で手動のファイル操作を行った後に現れることが多いです。
404 Not Found
サーバーは応答しましたが、そのアドレスには何もありません。
特定の1ページだけが404になる。 そのファイルや投稿が本当に存在しないか、URLが間違っています。
ホームページ以外のすべてのページが404になる。 これはルーティングの問題であり、WordPressではほぼ常にパーマリンクが原因です。重要な点として、KapsuleHostのウェブホスティングはApacheではなくnginxで稼働しているため、.htaccessの書き換えルールはここでは何の効果もありません。これを使用していたホストから移行した場合、それが原因です。パーマリンクの問題とWordPressと.htaccessをご覧ください。
サイト全体が404になる。 サイトが正しいドキュメントルートを指しているか、ドメインが正しいサイトに紐付けられているかを確認してください。ウェブサイトのカスタムドメインをご覧ください。
自分の環境では動くのに、本番では404になる。 Linuxのファイル名は大文字・小文字を区別します。Logo.PNGとlogo.pngは別々の2つのファイルです。
500 Internal Server Error
アプリケーションは実行されましたがクラッシュしました。ウェブサーバー自体は問題なく、コードに問題があります。
これは、ログからほぼすぐに答えがわかる唯一のケースです。PHPの致命的エラーは、失敗したファイルと行番号を記録しており、そこからたいていは原因となっているプラグインが特定できます。
- ウェブサイト からサイトを選び、設定、そして ログ に進みます。
- 最新のエントリを確認します。
- タイムスタンプをエラーが発生した時刻と照合します。
エラーログをご覧ください。このWordPress特有のバージョン、つまりエラーが表示される代わりにページが白紙になる現象については、WordPressホワイトスクリーンをご覧ください。
最も一般的な原因は、お使いのPHPバージョンと互換性のないプラグインやテーマ、メモリ上限への到達、そしてデータベース接続の失敗です。PHPの拡張機能と設定とWordPressのメモリ上限をご覧ください。
502 Bad Gateway
ウェブサーバーはリクエストをアプリケーションに渡そうとしましたが、使用可能な応答を得られませんでした。アプリケーションプロセスが接続を拒否したか、処理の途中で停止したことを意味します。
よくある原因:
- PHPプロセスがクラッシュした。多くの場合、1つのリクエストでメモリを使い果たしたことが原因です。
- Node.jsアプリケーションが起動していない、または起動時にクラッシュした。
- アクセスの急増により、利用可能なワーカープロセスが枯渇した。
対処法としては、まず上記の通りログを確認してください。Nodeアプリケーションの場合は、プロセスが実際に起動しているかどうかを確認し、起動時の出力を確認してください。502が最も混雑する時間帯にだけ発生する場合は、バグではなく容量の問題です。サイトの遅延とリソース上限をご覧ください。
設定を保存する際にKPanel自体から502が発生する場合は、意味が異なります。これは、パネルがウェブサーバーへの設定変更を適用できず、サイトを中途半端な設定のままにするのではなく変更をロールバックしたことを意味します。あなたのウェブサイトには影響がありません。もう一度試してみて、それでも失敗し続ける場合はチケットを開いてください。
503 Service Unavailable
503は、サーバーが現在意図的に配信を行っていないことを意味します。このプラットフォームには3つの具体的な原因があり、レスポンスを見ればどれかがわかります。
サイトが停止している。 「This site is paused」というタイトルのページが表示されます。これは技術的な不具合ではなく請求やアカウントの状態によるものであり、その状態が解消されればサイトはすぐに元に戻ります。請求 を確認してください。支払いの失敗とアカウント停止をご覧ください。
プラットフォームのメンテナンス。 プラットフォーム全体のメンテナンスページで、これは稀であり、事前に告知されます。ステータスと稼働状況をご確認ください。
504 Gateway Timeout
ウェブサーバーが我慢の限界に達した時点でも、あなたのアプリケーションはまだ処理を続けていました。何もクラッシュしていません。ただ遅すぎただけです。
典型的な原因:
- ブラウザ経由で実行された、長時間かかるインポート、エクスポート、バックアップ、または一括処理。
- ページの読み込みのたびに遅い外部APIを呼び出すプラグイン。
- インデックスが設定されていない、負荷の高いデータベースクエリ。
- 実際のcronではなく、ページビューによってトリガーされるcronタスク。
対処法:
- どのリクエストが遅いのかを特定します。WordPressサイトではAPMタブで確認できます。サイトのパフォーマンスをご覧ください。
- 時間のかかる処理には、ブラウザではなくコマンドラインを使用してください。WP-CLIをご覧ください。
- スケジュールされた処理は実際のcronに移行してください。cronジョブをご覧ください。
- 処理に本当にもっと時間が必要な場合は
max_execution_timeを引き上げてください。ただし、これは根本的な解決策ではなく回避策にすぎません。PHPの拡張機能と設定をご覧ください。
違いに注意してください。PHP自身の実行時間上限に先に達した場合は、504ではなく500になります。どちらも「遅すぎる」ことを意味しますが、異なる層で起きています。
まったく応答がない場合
エラーコードすら表示されないことがあります。それは応答そのものが存在しないからです。接続はただ固まったままになり、やがてタイムアウトします。
これが1つのネットワークからだけ発生し、別のネットワークからは(特にモバイルデータを使用したスマートフォンから)サイトが機能する場合、最も可能性が高い原因は自動的な不正利用ブロックです。あなたのアドレスからのエラーやログイン失敗の急増が、一時的なネットワークレベルの禁止をトリガーしたと考えられます。これらは通常1時間以内に自動的に解除されます。もっと早く解除する必要がある場合は、接続元のIPアドレスを添えてサポートにご連絡ください。
カスタムエラーページ
ウェブサイト からサイトを選び、設定、そして エラーページ の下で、400、401、403、404、500、502、503、504のデフォルトのエラーページを独自のHTMLに置き換えることができます。KapsuleHostは、設定しない場合でも404、500、502、503、504についてブランド化されたデフォルトページを用意しています。
知っておく価値のあることが1つあります。カスタムエラーページは実際のステータスコードをそのまま維持します。カスタム404ページであっても404を返し続けます。エラーページを200ステータスで配信することは検索順位を破壊する典型的な方法であり、ここでは意図的にそれができないようになっています。カスタムエラーページをご覧ください。