お問い合わせ

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

404 Vectors by Vecteezy
  • URLをコピーしました!

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

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

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

記事の内容

404エラーとは?

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

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

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

  1. 本当にページが無い
  2. ページはあるのにWordpressがページを出力しない

本当にページが無い場合

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

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

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

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

ページはあるのにWordpressがページを出力しない

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

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

データは残っているので、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エラーになってしまうのか?

404エラーが発生するのは、.htaccessとパーマリンク設定の不整合が原因です。

この不整合はどのタイミングで起こるでしょうか?

サーバー移転によるもの

サーバー移転時に、移転先で.htaccessにリライト設定が無くなってしまったのに、パーマリンク設定が『基本』以外の場合404エラーになります。

All in One Migrationでサーバー移転すると.htaccessはコピーされないので、この404エラーは結構起こりやすいです。

プラグインによるもの

キャッシュ系プラグインなどで.htaccessを編集するプラグインを組み込んだ時に、リライトルールが消されてしまって、パーマリンク設定との不整合で404エラーになる場合があります。

なぜTOPページだけ404エラーにならないのか?

TOPページはリライトルールが適用されないため、.htaccessとパーマリンク設定のリライトルールの不整合が発生しません。

TOPページ以外の404エラーの修正手順

.htaccessにリライトルールが無いのが原因なので、以下の2つの方法のどちらかで対応します。

方法1が簡単です。

方法1:リライトルールを更新する

パーマリンク設定を開き、何もせずに更新します。

更新すると、.htaccessに記述が復活します。

方法2:.htaccessにリライトルールを追加する

リライトルールを更新しない場合は、.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

まとめ

WordPressでTOPページ以外が404エラーとなって表示できない原因と対策をご紹介しました。

  • 表示できないページのデータが残っていない場合
    • 原因:誤操作、マルウェア感染などを疑う
    • 対策:バックアップを復元
  • 表示できないページのデータが残っている場合
    • 原因:パーマリンク設定と.htaccessの不整合の不整合
    • 対策:パーマリンク設定を更新

とりあえず、最初に行うことは、パーマリンクの更新を行うことです。

記事が参考なったらシェア!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

コメント

コメントする

記事の内容