この記事は約6分で読めます。
本文は約3490文字です
WordPressでTOPページ以外404エラー!原因と解決方法あり

WordPressではTOPページ以外のページが表示できなくなる(404エラー)トラブルが結構多いです。初心者の方や同様のトラブルにあったことが無い場合は結構焦ると思います。
この記事では、WordpressではTOPページ以外のページが表示できなくなるトラブルの原因と解決方法をお伝えします。
404エラーとは?
404エラー(not found)とは、存在しないページにアクセスしたときにサーバーから返されるHTTP レスポンス コード(HTTP 404 エラーコード)のことです。
つまり、サーバーがページを見つけられなかった時にブラウザに404エラーが表示されます。
WordPressサイトで今まで正常に表示できていたページが突然404エラーになった場合は以下の2つの可能性があります。
- WordPressから本当にページが無くなった
- WordPressにページはあるのにページを出力しない
本当にページが無くなった404エラーの場合
WordPressダッシュボードログインにして、投稿や固定ページに記事があるかどうか?確認します。
もし、記事が無かったら、データベースから記事が削除されています。
誤操作やハッキングなどでデータベースから削除された可能性があります。
こうなってしまうと、バックアップから復元するしかありません。
ページはあるのにWordpressがページを出力しない404エラーの場合
ダッシュボードログインにして、投稿や固定ページに記事があるか?確認します。
記事がある場合は一安心です。
データは残っているので、WordPressの設定の問題で404エラーが発生しています。
設定を修正すれば簡単に404エラーから復活できます。
WordPressのTOPページ以外が404エラーになる条件は?
WordPressは、色々なパーマリンク(URL)でサイトを表示できるようになっています。
自由にパーマリンクを設定できる反面、パーマリンク設定が正しく動かない場合は、簡単に404エラーになってしまいます。
404エラーが発生する条件は大きく2つです。
- パーマリンク設定が『基本』以外になっている
- .htaccessに必要なリライトルールの記載がない
条件1:パーマリンク設定が『基本』以外になっている
WordPressのパーマリンクは初期状態では『基本』になっています。『基本』の場合は、パーマリンクのリライトは行われません。
『基本』以外にパーマリンク設定を変更すると、パーマリンクのリライトが必要になり、パーマリンクのリライトが行われなければ、404エラーになります。
条件2:.htaccessに必要なリライトルールの記載がない
パーマリンクのリライトは、.htaccessにて行われます。
WordPressをインストールしたサイトではWordpressが自動的に.htaccessを追加する記述がそれです。
この記述は、パーマリンク設定が『基本』の場合は追加されません。
『基本』以外にしてパーマリンクを更新すると、リライトルールが追加されます。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
- .htaccessファイルを開いて、上記のコードがあるか確認します。
- 上記のコードが無い場合は、上記のコードをコピペして保存します。
なぜ、突然404エラーになってしまうのか?
404エラーが発生するのは、.htaccessとパーマリンク設定の不整合が原因です。
.htaccessとパーマリンク設定の不整合はどのタイミングで起こるでしょうか?
原因1:サーバー移転によるもの
サーバー移転時に、移転先で.htaccessにリライト設定が無くなってしまったのに、パーマリンク設定が『基本』以外の場合404エラーになります。
All in One Migrationでサーバー移転すると.htaccessはコピーされないので、この404エラーは結構起こりやすいです。
原因2:プラグインによるもの
キャッシュ系プラグインなどで.htaccessを編集するプラグインを組み込んだ時に、リライトルールが消されると、パーマリンク設定との不整合で404エラーになる場合があります。
なぜTOPページだけ404エラーにならないのか?
パーマリンクのリライトルールはWordpressの複雑で長いパーマリンクをわかりやすく変更するためのものです。
TOPページはURLがシンプルなのでリライトルールが適用されません。そのため、.htaccessとパーマリンク設定のリライトルールの不整合が発生しません。
TOPページ以外の404エラーの修正手順
.htaccessにリライトルールが無いのが原因なので、以下の2つの方法のどちらかで対応します。
方法1が簡単です。
方法1:リライトルールを更新する
ダッシュボード⇒設定⇒パーマリンク設定を開き、何もせずに更新します。

更新すると、.htaccessに記述が復活します。
方法2:.htaccessにリライトルールを追加する
リライトルールを更新しない場合は、.htaccessに以下の記述が無くなっているはずなので、手動で追加します。
サブディレクトリで公開しているサイトの.htaccessが、ルートで公開しているサイトの.htaccessになっている場合も404になります。
ルートで公開している場合
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
サブディレクトリ/wp/で公開している場合
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
まとめ
WordPressでTOPページ以外が404エラーとなって表示できない原因と対策をご紹介しました。
とりあえず、最初に行うことは、パーマリンクの更新を行うことです。
- 表示できないページのデータが残っていない404エラーの場合
- 原因:誤操作、マルウェア感染などを疑う
- 対策:バックアップを復元
- 表示できないページのデータが残っている404エラーの場合
- 原因:パーマリンク設定と.htaccessの不整合の不整合
- 対策:パーマリンク設定を更新
コメント