ブログ

404エラー!WordPressにログインできない!解決方法

それは突然起こりました。
3日前までは正常にログインできていたWordPress管理画面に「404エラー」で入れなくなってしまったのです。
ここ数日間で2度目の顔面蒼白、心の中は「またか…」。

404エラー
Not Found
The requested URL /s/404-siteguard was not found on this server.

救いは、サイトは正常に表示できていること。
管理画面にだけ入れないのです。

それから3日かけて解決に至ったその経緯を備忘録として残しておきます。

404エラーが起こる前にも、「シンタックスエラー」「ログイン画面が出せないエラー」が起きていました。
このエラーと404エラーは全てつながっているため、コトの始まりから記載しています。
目次の該当するところから読むとてっとり早いですよ。

コトの始まりはプラグインの更新作業

シンタックスエラー

404エラーで、なぜ「またか…」と思ったかと言うと。
その日から遡ること3日前、別のエラーでサイトが表示されないという最悪の事態が起こっていました。

コトの始まりはプラグインの更新作業でした。
更新を行ったところシンタックスエラーとなりサイトが表示されなくなったのです。

シンタックスエラー
Parse error: syntax error, unexpected T_STRING in /home/xxxxx.com/s/wp-content/plugins/wp-social-bookmarking-light/wp-social-bookmarking-light.php on line 44

すぐに別ブラウザでも試してみましたが、この1行のみが表示されるだけで、サイトが表示されません。
クライアントサイトなので顔面蒼白、このエラーで寿命が5年は縮みました。

まずは「深呼吸」

結構いろんなサイトに書かれているコレ。

画面が真っ白になって、一番してはいけないのは慌ててサイトをいじくり回し修復不可能にしてしまうことです。まずは深呼吸して落ち着きましょう。画面が真っ白!!WordPressでエラーが起きた場合の対処方法

これ、本当に大事。
別件ですが、過去にサイトリニューアル作業中トラブルが起き、パニックの挙句にバックアップを取らずに新サイトをフォルダごと消去してしまった私。
この助言は骨身にしみます。まずは落ち着きましょう!

該当プラグインを削除する

シンタックスエラーを見ると、プラグイン「wp-social-bookmarking-light」が原因のようなので、まずはプラグインを無効にします。

FTPに入ってサイトガードプラグインの名前を変更することで、強制エラーを出して無効化する方法、こちらはもっと簡単です。強制エラーを出し、プラグインを無効化してログイン

ログインできず管理画面からは操作できないので、この操作はFTPソフトを使います。
「plugins」フォルダを「p」に名前を変更、強制的にプラグインを無効にしたところ無事サイトは表示されるようになりました。
管理画面にもログインできるようになったのでプラグインを確認したところ、プラグインが見つからないという表示。
それはそうですよね。
その後、「plugins」フォルダの名前を元通りにしたら、プラグインは表示されましたが全て停止状態になっていました。
必要なプラグインは再度「設定」して動かし、該当の「wp-social-bookmarking-light」プラグインは必要がなかったので削除しました。

再度、サイトが正常に表示されているのを確認しこれにてシンタックスエラーの復旧は完了!

今度はログイン画面が出てこない!

と思ったら。
クライアントから「管理画面に入るログイン画面が出てこない」との連絡。
前の作業でプラグインを一旦止めて再設定した際に、どうやら別のセキュリテイプラグイン「SiteGuard」がログイン画面のURLを書き換えたようです。

「SiteGuard」が原因でした

「SiteGuard WP Plugin」は、管理ページとログインページの保護を主な目的とする、WordPress向けのシンプルなセキュリティプラグインです。
WordPressの管理画面は「http://サイトURL/wp-admin」のようなURLです。
サイトURLさえわかれば誰でもアクセスできてしまい、セキュリティ上不安が残ります。
でも「SiteGuard」を使うと、ログイン画面のURLを任意のURLに変更することができるのです。

管理ページとログインページの保護を中心とした日本語対応のシンプル・簡単プラグインで、以下の攻撃を防ぐことができます。SiteGuard WP Plugin

シンプルかつ効果的なプラグインでお気に入りなのですが、この「SiteGuard」、一度プラグインを止めて再度起動させた時にログイン画面のURLを書き換えてしまうようです。

「SiteGuard」で設定したログイン画面のURLを使わずにログイン画面を出すには、次の3つのうちどれかでログインを試します。

・https://サイトURL/wp-admin/
・https://サイトURL/wp-login.php
・https://サイトURL/wp/wp-login.php

この中の一つで無事ログインすることができ、「SiteGuard」の管理画面で新しいログイン画面URLを確認します。
管理画面での確認方法はこのサイトに詳しく載っていました。

SiteGuard WP Pluginプラグインを使うと、ログイン画面のURLを変更することができます。WordPressのログイン画面のURLを変更する
クライアントに新しいURLを報告し無事終了!

この件に関しては、次のサイトも参考になりました。



数日後、404エラーで管理画面にログインできない!

3日経って、再度管理画面にログインしようとしたところ、「404エラー」で入れなくなっている!
ログイン画面までは出るけど、正しいユーザー名とパスワードを入れると、次の画面で「404エラー」。
先日、「SiteGuard」で設定したログイン画面のURLを使わずにログインすることができた
・https://サイトURL/wp-admin/
・https://サイトURL/wp-login.php
・https://サイトURL/wp/wp-login.php

このURLでも試しましたが依然「404エラー」。
次のことを順次試しました。

「plugins」フォルダをリネーム

3日前と同じように、「plugins」フォルダを「p」にリネームしても「404エラー」。
次。

「SiteGuard」フォルダを削除

「plugins」フォルダの名前を元通りにしたのち、「SiteGuard」フォルダを削除しても「404エラー」。
「SiteGuard」フォルダを削除したのに「SiteGuard」が絡むエラーになるってどういうこと?
どっかに記載が残っている?
ということは「.htaccess」ファイルが怪しい・・・。次行ってみよ〜!

「.htaccess」ファイルを確認

「.htaccess」ファイルに記述されている「site guard」のコードを消去することで「404エラー」が回避されるらしいので、それを試します。

.htaccessサイトガードによる管理画面をフィルタする記載、IPアドレス以外から管理画面へアクセスがあったら404ページを返す下記を丸々削除します。アクセス制限は、管理画面の外部攻撃を404で返す

が、しかし。
「.htaccess」の記述を確認しましたが、5行のみ
# BEGIN WordPress

# END WordPress
だけしか記載がありませんでした。

原因は絶対これだ!と思っていたのですがハズレ。イヤな予感。

ブラウザのキャッシュクリア

ブラウザ(chorme)のキャッシュクリアをしても「404エラー」。
chrome、Firefox、safariと3つのブラウザで試しましたが「404エラー」でした。
(泣)

WAFを無効にする

WAF(ワフ)とは、Webサイトやその上で動作するPHPなどのWebアプリケーションを狙った攻撃を防御する仕組み、らしいです。
WAF(ワフ)はWeb Application Firewallの略で、Webアプリケーションのぜい弱性を悪用した攻撃からWebサイトを保護するセキュリティ対策です。WAF(Webアプリケーションファイアウォール)SiteGuard

このWAFを導入しているレンタルサーバ会社がいくつかあり、さくらインターネットもWAFを導入しています。(その他にもロリポップなどが導入しています)
問題のサイトはさくらインターネットを利用していて「WAFを無効にしてみるともしかしたら直るかも?」と、ある人から教えてもらったので早速試してみることに。
さくらインターネットの管理画面から確認します。

WAFの設定
※WAFが反映されるのに少し時間がかかるため、WAFを無効にしてしばらくたってから試してみると良いそうですよ。(プラグインを削除したあとは、再度WAFは有効にしておきます)

きっとコレでエラーが解消されるに違いない!と、WAFの設定を確認したところ・・・
WAFは「利用しない」になっていました(T ^ T)ぐすん

しかし、ここで新たなことが判明!
他の人に試してもらったところ、ちゃんとログインし管理画面に入れるそうなのです。
ということは、私の環境でログインしようとすると「404エラー」ということに。
そうすると、対処法もだいぶ狭まってきますね!

別のデバイスを試す

別のデバイスではどうだろうかとiPhone、iPadproでも試してみましたが同じく「404エラー」。
ということは・・・。
私のネットワークでは入れないんじゃないか?(IPアドレスでブロックとかそういう系)と思い至りました。

それならやっぱり・・・・、

.htaccessをもう一度確認!【原因はコレ】

原因は.htaccessファイルなんじゃないだろうか・・・?
しかし、何ども.htaccessファイルを開いてみるのですが、相変わらず5行のみの記載、

# BEGIN WordPress

# END WordPress

これだけです。

それでまたファイルを閉じて、もう一度.htaccessファイルを開いてみると、な、な、なんと!!!
site guardの記載が現れました!

.htaccessの記述

.htaccessに記載されている
#SITEGUARD_PLUGIN_SETTINGS_START
から
#SITEGUARD_PLUGIN_SETTINGS_END
までのブロックを削除したところ、無事ログインすることができました!

なんで突然表示されたかはナゾ・・・・。

今回の教訓

次回、同じような目にあったら 別のFTPソフトでも確認した方がいいかも! と思いましたよ。



関連記事

ページ上部へ戻る