管理画面、ログイン画面が404|WordPress Site Guardを使っていた場合

WordPressで管理画面、ログイン画面にアクセスした時に404になった場合、色々なケースがありますが今回はSite Guardというプラグインを使用していた時のケースを解説します。

緊急でログインがしたいんだ!という方は以下のページの処理を行うとログインできるようになります。

結論|Site Guardの機能が正常に動いている

Site Guardの機能では色々機能がありますが、「ログインした時にIPアドレスを記録し、直接wp-admin/以降にアクセスした際に404を返す」というものがあります。これは以下のSite Guardダッシュボードで『管理ページアクセス制御』という項目をONに設定すると機能します。

つまり今ログインしようとしているネット回線がいつもと違う場所でSuite Guardを使用している時はまず回線をいつもの場所で試してみると普通に使える可能性があります。

理解を深めたい方はテストしてみましょう

準備

自宅のネット回線で作業している時のIPを確認してみます。
IPは以下のサイトで確認できます。
https://www.cman.jp/network/support/go_access.cgi
このIPをメモしてください。
そして念の為この回線で一度ログインをしてください。
ログインをした時点でSite Guardがログインした時点でのIPを
.htaccessファイルとデータベース(MySQL内)に記録します。

次にスマホのテザリングでPCをネットに接続するか、カフェなどでネット回線を変えて同じようにIPを確認してみてください。※この時のネット回線は今までWordPressのログインに使用していない回線にしてください。
IPが変わっていたら準備完了です。

Site Guardの機能を確認

wp-adminにアクセス|管理ページアクセス制御

wp-adminはログインした後の管理画面のアドレスです。
機能をオンにした状態でサイトのwp-adminにアクセスしてみましょう。
例)example.com/wp-admin ← example.comのところを自分のサイトに変えてみてください。
すると以下のように表示されると思います。


Not Found
The requested URL was not found on this server.


さらにデベロッパーツールでみると以下のように404が返ってきているのが確認できます。

これは一見トラブルに見えますがSite Guardがwp-admin以下へのアクセスを守ってくれている状態です。続いて回線はそのままに以下もテストしてみます。

参考ページ管理ページアクセス制限

wp-login.phpにアクセス|ログインページ変更 ※公式解説ページはこちら

次にwp-login.phpにアクセスしてみましょう。これはWordPressで最初に設定されているログイン画面のアドレスです。以下の画面でお馴染みですね。

本来であれば上記画面が表示されます。表示された方はSite Guardで『ログインページ変更』機能をオフにしている方です。ここでユーザー名とパスワードを正しく入力してログインすると管理画面(example.com/wp-admin)にアクセスできると思います。つまり『管理ページアクセス制御』をオンにしていた場合でもwp-login.phpからのログインであればIP関係なく許可してくれているということになります。

wp-login.phpにアクセスして404が返ってきた方


404が返ってきた方は『ログインページ変更』機能をオンにしている方です。これはwp-login.phpからlogin_xxxxxに変えてくれる機能でWordPressのログイン画面アドレスが変わります。こういった方はlogin_xxxxxにアクセスしてログインをすると管理画面(example.com/wp-admin)にアクセスできると思います。

管理者ページからログインページへリダイレクトしない
『ログインページ変更』機能設定画面で『管理者ページからログインページへリダイレクトしない』にチェックを入れていた場合、トップページか404(Site Guardバージョン 1.6.0以前)が返ってきます。

参考ページログインページ変更

IPの記録場所

前述したIPを記録しているということですが、テストする際に記録されたIPを消したい場面があり場所も確認してみました。

データベースの中にwp_siteguard_loginというテーブルが追加され、ip_addressというカラムにIPが記録されていました。この情報は24時間経つとレコードごと削除される仕様になっており、削除された場合再び有効なログイン画面(wp-login.phpかlogin_xxxxx)からユーザー名、パスワードを入れてログインし直す必要があるとのことでした。

テスト時に記録されたIPを削除してテストしたい場合はこのレコードごと削除すると記録されたIPとして扱われなくなりました。

sitegurdの404(IP制限)を解除したい

今すぐsitegurdの404(IP制限)を解除したいという方は以下の記事を参照ください。


Site Guardの機能は非常に高機能で素晴らしいものですが、知らずに使っていると一見WordPressやプラグインのバグのようにも見えてしまいます。
実は私もハマりました😅
ので今回良い機会と捉えて動きを再現しつつまとめてみました。

コメント

タイトルとURLをコピーしました