よくある質問
パーマリンクを変えたら記事が404になる(nginxで起きる理由)
2026年10月8日

レン
パーマリンクの設定を変えたら、個別の記事が全部404になった…トップページは出るのに。

プロクラ
その症状、VPSでWordPressを動かしているとよく出るんだ。しかも共用サーバーではまず起きない。理由がはっきりしているから、順に説明するね。
なぜ個別記事だけ404になるのか

プロクラ
パーマリンクで作られるURLは、実際のファイルの場所ではないんだ。そんなディレクトリもファイルも存在しない。Webサーバーは正直に「無い」と答える。それが404の正体だよ。
- トップページは実在するファイルが応答するので、問題なく出る
- 個別記事のURLに対応するファイルは存在しない
- 本来は「見つからなければWordPressに渡す」という設定が要る
- その設定が無いと、Webサーバーが404を返して終わる
共用サーバーで起きない理由
共用サーバーでは、必要な書き換え設定が最初から入っています。VPSでは自分で入れることになるため、移してきたときにここが抜けます。トップページは表示されるのに個別の記事だけ404になる、という特徴的な症状は、ほぼこれです。

プロクラ
Apacheを使う共用サーバーでは、WordPressがこの設定をファイルに自動で書き込む仕組みがある。だから利用者は何もしなくていい。nginxにはその仕組みが無いので、自分で書く必要があるんだ。
- Apache: WordPressが設定ファイルを自動で書き換える
- nginx: 自動では書かれない。設定ファイルに自分で追記する
- VPSでnginxを選んだ場合、この差がそのまま出る
- 「共用サーバーでは動いていたのに」の正体はこれ
何を設定するのか

プロクラ
考え方は単純だよ。「実在するファイルがあればそれを返す。無ければWordPressの入口へ渡す」という指示を1行入れるだけだ。
- サイトの設定ブロックに、その指示を追加する
- 追記したら、設定の書式が正しいかを確認するコマンドを流す
- 問題なければ、Webサーバーを再読み込みする
- 再読み込みを忘れると、直したのに変わらないままになる

プロクラ
最後の点で詰まる人が多いよ。設定ファイルを直しただけでは反映されない。再読み込みまでが1組だと覚えておこう。
それでも直らないとき
- 編集した設定ファイルが、実際に読み込まれているものかを確かめる
- サブディレクトリで運用している場合、渡し先の指定がずれていることがある
- WordPress側でパーマリンクの設定を保存し直す
- 前段にキャッシュやCDNがあるなら、そちらの古い応答が残っている

プロクラ
1つめが意外と多い。設定ファイルを複数持っていて、有効になっているのは別のほうだった、という形だね。どれが読み込まれているかを先に確認しよう。

レン
存在しないURLをWordPressに渡す設定が要る。nginxだと自分で書くんだね。
VPSの料金を比較する
あわせて読みたい
- よくある質問請求が想定より高い:内訳の確かめ方サーバー本体以外に何が課金されているのかを、明細から特定する手順。消し忘れやすいものの一覧と、次から驚かないための確認の習慣を解説します。
- よくある質問systemdのログがディスクを圧迫している気づかないうちに数GBに育つログの正体と、安全に削る方法。今後増え続けないように上限を設ける設定と、消しすぎてはいけない理由を解説します。
- よくある質問アップロードで「サイズを超えています」と出る:上限は2か所にあるPHPの設定を直したのに変わらない理由は、Webサーバー側にも別の上限があるからです。3つの設定値の関係と、変更後に必要な反映作業を解説します。
- よくある質問依存パッケージの導入がメモリ不足で止まる小さいプランでビルドや依存解決が失敗する原因と対処。上限の外し方、スワップの併用、そして本番でビルドしないという選択を解説します。
サーバーを触る前に押さえておきたいこと
姉妹サイトの、この記事と相性のいいページです。
- ネットワーク入門
IPアドレス・ポート・DNSの基礎 — prodou.net
- Linuxコマンド入門
ls / cd / grep などを疑似ターミナルで試しながら学べる — prodou.net
- CIDR Calculator
ファイアウォールの許可レンジを計算する — toolkitbox.net