Xserverが今なら最大50%OFF! 2022年11月25日(金)12:00まで

WordPressでTOPページ以外404エラー!原因と解決方法あり

404 Vectors by Vecteezy

この記事は約6分で読めます。
本文は約3490文字です

WordPressではTOPページ以外のページが表示できなくなる(404エラー)トラブルが結構多いです。初心者の方や同様のトラブルにあったことが無い場合は結構焦ると思います。

この記事では、WordpressではTOPページ以外のページが表示できなくなるトラブルの原因と解決方法をお伝えします。

この記事の内容

404エラーとは?

404エラー(not found)とは、存在しないページにアクセスしたときにサーバーから返されるHTTP レスポンス コード(HTTP 404 エラーコード)のことです。

つまり、サーバーがページを見つけられなかった時にブラウザに404エラーが表示されます。

WordPressサイトで今まで正常に表示できていたページが突然404エラーになった場合は以下の2つの可能性があります。

ページが見つからない404エラーが起こる可能性
  1. WordPressから本当にページが無くなった
  2. WordPressにページはあるのにページを出力しない

本当にページが無くなった404エラーの場合

WordPressダッシュボードログインにして、投稿や固定ページに記事があるかどうか?確認します。

もし、記事が無かったら、データベースから記事が削除されています。

誤操作ハッキングなどでデータベースから削除された可能性があります。

こうなってしまうと、バックアップから復元するしかありません。

ページはあるのにWordpressがページを出力しない404エラーの場合

ダッシュボードログインにして、投稿や固定ページに記事があるか?確認します。

記事がある場合は一安心です。

データは残っているので、WordPressの設定の問題で404エラーが発生しています。

設定を修正すれば簡単に404エラーから復活できます。

WordPressのTOPページ以外が404エラーになる条件は?

WordPressは、色々なパーマリンク(URL)でサイトを表示できるようになっています。

自由にパーマリンクを設定できる反面、パーマリンク設定が正しく動かない場合は、簡単に404エラーになってしまいます。

404エラーが発生する条件は大きく2つです。

  1. パーマリンク設定『基本』以外になっている
  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
パーマリンク設定を更新しても404が改善しない場合
  • .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の不整合の不整合
    • 対策:パーマリンク設定を更新
参考なったらシェアお願いします!

この記事を書いた人

サーバーソムリエのアバター サーバーソムリエ レンタルサーバー鑑定士

国内のあらゆるレンタルサーバーを使用、管理した経験があります。サーバー選びからWordpressを使ったサイト運営まで丸っとお任せください。あなた様のご希望にそった本当に使える最適なサーバーをご紹介します。

コメントを閉じる

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

この記事の内容