このブログについて その他 アクション ディスプレイ 電子書籍(Kindle)

WordPressアップデート後に投稿ページだけが404になるエラーに遭遇した話とその解決方法

2024/11/25

WP-post404error-solution-EyeCatch
このページでは、数日前(たぶん11月13日頃かな)から、私のブログの投稿ページが404エラーになって内容を表示できない不具合が起きていて、原因や対処法も分らず困っていたんですが、11月17日になって(一応)解決できたような雰囲気になっているので、その顛末などをまとめていく次第です。


 先に結論から言うと、ハッキリした原因は未だに分らないんですけど、WordPress本体やプラグインの更新をした後に(私の環境では)発生した可能性が高くて、私の場合はCustom Permalinksというプラグインでパーマリンクを設定した投稿ページが404エラーになる感じでした


私がやって(一応)解決した方法としては.htaccess最上部に

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

以上を追記して保存したら投稿ページも正常に表示される状態に戻りました

 それ以降はWordPress本体やラグインを更新しても、ブログの投稿ページは無事に見られる状態をキープできています


 ここから下には私が不具合に遭遇した際の環境や、不具合の詳細、その都度試した方法等も合わせて書いています。


また、解決に繋がった方法をサッと知りたい場合は、目次を開いて「解決に繋がった方法」をクリックすると手っ取り早いですぞ。


問題が発生したときの私の環境



 このエラーが起きるようになった私の環境としては、

  • 使っているサーバー:シンレンタルサーバー ベーシックプラン

  • WordPressのバージョン:6.6.2/6.7(後になって確認したら両方でエラーが出てた可能性が高い)

  • PHPのバージョン:PHP8.1.29

  • 使っているWordPressテーマ:AFFINGER6

  • (たぶん)今回のエラーに関わっていたプラグイン:Custom Permalinks/Really Simple Security(旧名Really Simple SSL)

  • (たぶん)今回のエラーに関わっていたファイル:.htaccessファイル

  •  という具合。

     私はかれこれ13年以上ブログをやっていて、(初期のしょうもなすぎる記事は非公開にしていますが)このブログだけでも12年やっていたりします。

    その間レンタルサーバーを4回引っ越したり、WordPressテーマを5回変更したりといった、ふつうのブログであればしないあろう大がかりな環境の変更が複数回ありましたし、

    現在使っているWordPressのテーマもAFFINGER6とかなりクセの強いモノを使っていることもあり、正直ギリギリ体裁を保っているブログなので、WordPressのアップデートがドウコウとか、個々のプラグインがドウコウ、というより私の環境や使い方が悪い可能性が非常に高いですな。

    今回のエラーに遭遇してから、ワリとしっかりGoogleで検索したり、WordPressのフォーラム・プラグインのフォーラム、X等のSNSで調べたんですけど、同じ様なタイミングで似たようなエラーに遭遇した話を全然見つけられなかったので、「たぶん私の環境や運用が悪いんだろうなぁ」と思っています


    エラーの内容(不具合の症状)



    404ScreenShot
    △ブログの投稿ページにアクセスしようとすると404エラーが表示される


     今回遭遇したエラーの内容というか、不具合の症状としては、

    ブログの投稿ページにアクセスしようとすると404エラーになる
    (トップページやサムネイル、投稿一覧、カテゴリ一覧は普通に表示される)


    というモノ。
    後で調べたらCustom Permalinksというプラグインでパーマリンクを設定した投稿ページだけが404エラーになっていたんですけど、このブログでは初期の記事以外ほとんどCustom Permalinksを使っていたので、その辺はすぐに気づかなかった感じですな。

    変更を行なった際の時間やアクセスログなどを元に、
    不具合が実際に起きた時の状況と、その際に行った対応、その結果を時系列に沿って書いていくと…


    11月13日前後:投稿ページが404エラーになるエラーが発生



     後になってブログに変更が行われた時間やアクセスログなどを見たところ、WordPressのバージョンアップを行った11月13日を境に投稿ページのアクセス数が激減しているので、恐らくこのタイミングでエラーが発生した可能性が高いと推測しています。


    11月16日16時頃:投稿ページが404エラーになる事に気づく



     トップページやサムネイル、投稿一覧事態は無事で、投稿ページ本体にアクセスしようとすると404エラーになると認識、調べてみたところWordPressのパーマリンク設定(.htaccess)が壊れた際にこのような挙動になるらしいので、管理画面の「パーマリンク設定」にある「変更を保存」を押して.htaccessの再生成を試みるも改善されず


    ・WordPress本体を11月の13日に6.6.2から6.7にバージョンアップしたのが関係しているかも知れないと考えて、WordPress本体をバージョン6.6.2にバージョンダウンするも改善されず


    ・WordPressをバージョンアップする前にAll-in-one WP Migrationというプラグインでフルバックアップをとっていたので、そのバックアップからの復元を行うも改善されず


    ・自力ではもうどうにもならないな。と思いレンタルサーバーの自動バックアップから復元する
    その時はWordPressを6.7にバージョンアップしたのが原因だと思っていたので、バージョンアップ前の11月11日のバックアップデータから復元を実行。無事に投稿ページも見られる状態に戻る

    この時復元を申し込んだのが17時8分で、復元が完了したのは17時30分でした。(速っ)



     復元が完了して、無事にブログの投稿ページも表示されるようになったけど、原因がハッキリしていないので、念のためファイルマネージャーで.htaccessファイルをダウンロードしておく

    この時点で原因はハッキリしていないけど、暫定的に正常な状態に戻ったので、後は迂闊にWordPressやプラグインをアップデートしなければ、もう何日かは時間を稼げるなと思っていました。


    11月17日3時38分:プラグインの自動アップデートが行われた直後に再び投稿ページが404エラーになる




    「は~ぁやっと休めるわい」とか思って夜更かししていたら、プラグインの自動アップデートが行われた旨を知らせるメールが来ていて、その後に念のため私のブログを再度チェックしたところ再び投稿ページが404エラーになっている事を確認




    △参考リンク:【重要】WordPressプラグイン「Really Simple Security(9.0.0 ~ 9.1.1.1)」における緊急性の高い脆弱性について


    この時アップデートされたプラグインはReally Simple Securityでした。
    先に挙げたように迂闊にWordPressやプラグインをアップデートする気は無かったので、自動更新をOFFに設定していたのですが、アップデートする前のバージョンには緊急性の高い脆弱性があったので、強制的に自動アップデートされたという具合ですな。

    ここで原因はReally Simple Securityにあるのでは?と思い、プラグインの無効化やアンインストールを行うも改善されず


    また、.htaccessファイルを確認するも、無事だったときの.htaccessファイルと完全に同じで試しに無事だったときのファイルと置き換えてみても改善されませんでした


    ここで、
  • レンタルサーバーの自動バックアップから復元して、Really Simple Securityがアップデートされる前はマトモに表示できていた事

  • レンタルサーバーの自動バックアップから復元するのに22分程度しか掛からなかった事



  • 以上を踏まえて、「もう一度レンタルサーバーの自動バックアップから復元して、Really Simple Securityが自動でアップデートされる前にアンインストールする」という方法を考える。


    ・再びシンレンタルサーバーの自動バックアップから復元を実行。

    無事に投稿ページが表示されることを確認した後、プラグインの自動アップデートが行われる前にReally Simple Securityをアンインストールして、1日様子を見たところ、全ての公開ページが無事に表示される状態をキープできた

     この時復元を申し込んだのが午前3時56分で、復元が完了したのは12時7分でした。


    復元が完了した後、いつ自動アップデートが行われるか分らなかったので、復元を申し込んでから30分毎に状況をチェックしていたんですが、この時は結構かかりましたな。(たぶん日曜日のド深夜だったからかな…)


    11月18日1時頃:油断してWordPressをバージョンアップしたところ再び投稿ページが404エラーになる



     1日様子を見て大丈夫そうだったので、「試しにやってみよう」とか思ってWordPressを6.6.2から6.7にバージョンアップしたところ再び投稿ページが404エラーになる事を確認


     コレは本当にわからんぞと困っていたんですが、改めて投稿ページを遡って確認してみると初期に書いていた、URLがWordPressのポストIDそのままの投稿は表示できることを発見


     このブログの初期はパーマリンクをWPのデフォルト設定のまま投稿していて、だいぶ経ってから記事内容を表すようなパーマリンクにした方が良い事に気づいたんですが、それまでに書いた記事のパーマリンクを設定し直すのはあまりに大変すぎる。


    そのためCustom Permalinksという、記事を投稿する際に任意のパーマリンクを設定できるプラグインを導入して、それ以降に書いた記事はCustom Permalinksでパーマリンクを設定する。という風に運用していたんですな。

    で、今回404エラーで表示できなくなる投稿は、そのCustom PermalinksでURLを設定した投稿だという事に気づいたんですわ。


    解決に繋がった方法(.htaccessに追記すると無事表示されるようになりました)





    △参考リンク:【WordPress上級者編】プラグイン「Custom Permalinks」の使い方と、404(not found)エラーになった時の対処方法


     ここでようやく「エラー関わっているのはCustom Permalinksかも知れない」と考え、調べてみたところ、Custom Permalinksは導入するサーバーによって、パーマリンクを設定したページが404エラーになる事があるとのこと


    そしてその場合は.htaccessファイルにある、

    # BEGIN WordPress

    # END WordPress


    の欄外にURLの書き換えを有効にする旨の記述を行います。
    記述の内容としては…


    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]


    上記の通りです。

    記述の意味は(たぶん)

    ・URLの書き換えを有効にする
    ・ドキュメントルートを指定
    ・リクエストが"index.php"だった場合はそのあとの処理をスキップして終了
    ・リクエストされたファイルやディレクトリが無い場合は「index.php」に転送する。

    みたいな感じだと思いますぞ(勘)。

    欄内に書き込むとWordPressやプラグインの更新などによって.htaccessファイルが書き換えられた際、記述がリセットされてしまう現象があるので、あえて欄外に書き込む事で、そのリスクを回避できるみたいですな。


    WP-post404error-solution-01

    △こんな感じですな。(スクリーンショットは書き込んだ後)


     .htaccessファイルに追記して保存したところ、404エラーになっていた投稿ページも無事に表示されるようになりました


    WP-post404error-solution-02


    △無事投稿ページの内容が表示されるようになった。

    WordPressの投稿ページだけが404になるエラーに遭遇した話とその解決方法 (今回のまとめ)



    404ScreenShot
    △404エラーを見るだけでどっと疲れるようになりました。


     てな訳で今回は数日前から私のブログの投稿ページが404エラーになって内容を表示できない不具合が起きていて、原因や対処法も分らず困っていたんですが、11月17日になって(一応)解決できたような雰囲気になっているので、その顛末などをまとめてみた次第です。


    結論をザックリまとめると
  • Custom Permalinksでパーマリンクを設定した投稿ページが404エラーになっていた

  • .htaccessファイルにURLの書き換えを有効にする旨の追記をして保存したら解決した


  • という感じですな。
    (エラい苦労したのにまとめると2行に収まってしまいました)


     個人的に不思議なのはCustom Permalinksで設定した投稿ページが404エラーになる。というエラーなのに、プラグインのCustom Permalinks自体は3ヵ月前に更新したのを最後にそれ以降触れていない事と、別のプラグイン(私の場合はReally Simple Security)やWordPress本体の更新がエラーの引き金なっていた事。


    また、.htaccessファイル上部に追記することで解決できたのに、サーバー側のバックアップから復元したばかりで正常に表示される状態での.htaccessファイルの内容と、Really Simple Security の自動アップデートが行われて、投稿ページが404エラーになってしまう状態での.htaccessファイルの内容が全く同じだった事。


     以上の点を踏まえると正直根本的な原因などは全然分からない感じですな。


     環境の所で触れたように、クセ強WPテーマに継ぎ足し継ぎ足しでギリギリ体裁を保っている私の運用や環境に原因がある可能性がとても高いので、たまたま今回プラグイン・WordPressの更新が引き金になっただけで、個々のプラグイン本体やWordPressの更新自体が悪い訳ではなさそう

    現に今回のエラーに遭遇してから、ワリとしっかりGoogleで検索したり、WordPressのフォーラム・プラグインのフォーラム、X等のSNSで調べたんですけど、同じ様なタイミングで似たようなエラーに遭遇した話は全然見つかりませんでした。


    ただ、この記事が(滅多にいないとは思うけど)私と同じような運用をしていて、「急に投稿ページだけが404エラーになって困っている」という方の問題解決の役に立てたら嬉しいです


    以上でこの記事はおしまいです。 この記事が役に立ったり、参考になったりした場合は、ブログやTwitter・Facebookなどで興味がありそうな方にこの記事を紹介してくださると、とても嬉しいです。ぜひよろしくお願いいたします。



    おねがい

    こんなに下の方まで読んでくれてありがとうございます…! もし、このブログの記事や情報が役に立てたなら、とても嬉しいです。
    唐突なお願いで恐縮ですが、このブログの運営・活動を支援して頂ければ幸いです。 このブログは「穏やかな語り口の正直なレビュー」をモットーに運営していて、もう10年以上経つのでそれなりの規模になったと考えているのですが、実は全然収益が上がっていません。
    Googleの自動広告も掲載していますが、詐欺的な広告・不快感のある広告・ジャマになるような表示方法の広告を手動で徹底的に排除した結果、広告掲載による収益は0円の日が多く、メチャクチャ良くても1日45円といった状況です。
    たとえ少額な普段の買い物でも、下記のアフィリエイトリンクを経由して買ってもらえると、このブログとって、とても大きな支えになります。


    どうかご支援頂のほど、よろしくお願いいたします。 最後まで読んで下さり。ありがとうございました。

    -このブログについて, その他, アクション, ディスプレイ, 電子書籍(Kindle)
    -, , , ,