このサイトを、「ロリポップ」から「エックスサーバー」に移転しましたが、サーバー移転後にワードプレスにログインできないという事態が発生しました。
私の場合、原因は「SiteGuard」プラグインでした。その時の対処法をメモしておきますので、同じく困っている人のご参考になれば幸いです。
逆に、このプラグインを使っていないのなら、原因は他にあります。この記事では解決できないので、他を当たってください。
※ロリポップからエックスサーバー間の移転トラブルですが、他のサーバー間での移転でログインできない方もご参考になると思います。
ワードプレスにログインできない原因は?
私の場合は、「ワードプレスにログインできない」というよりも、「ログイン画面のURLにアクセスてしても、404エラーで返される」というトラブルでした。
この場合は、ワードプレスに入れているプラグイン「SiteGuard」である可能性が考えられます。
「SiteGuard」の設定で、「管理ページアクセス制限」をオンにしたままサーバーを移転すると、ログインしようとしても404(Not Found)が表示されることが分かりました。
「SiteGuard」プラグインを削除しましょう。
「SiteGuard」の削除方法
SiteGuardを削除したくても、そもそもワードプレスにログインできないので、通常とは異なる方法でプラグインを削除します。
Xサーバーの「.htaccess」の編集画面にアクセス
まずは、Xサーバーの「サーバーパネル」にログインしてください。
ログイン後に、「ドメイン設定」をクリック、管理画面左横の「.htaccess」を選択します。
「ドメイン選択画面」というタイトルで、Xサーバーに登録しているドメインが並びます。そこから、ログインできないドメインの「選択する」をクリック。
「この機能は上級者向けの機能です」という表示が出ています。表示の上にタブが2つ並んでいるので、「.htaccessの編集」に切り替えてください。
記述がズラッと並んでいます。
ログインURLに間違いがないか確認
ここで、ワードプレスのログインURLが間違っていないか、ついでに確認しましょう。
ログインURLを間違うと、当然、404エラーで返されます。
確認方法は、.htaccessの以下の記述に注目。
RewriteRule ^login_xxxxx(.*)$ wp-login.php$1 [L]
この中の「login_xxxxx」という部分が、現在のログインページのURLです。
ドメインの後に「login_xxxxx」をつなげてアクセスしてみましょう。
「SiteGuard」を削除する
ログインURLが正しいのに404エラーで返される場合は、プラグイン「SiteGuard」を削除します。
通常であれば、プラグインの削除はワードプレスにログインしてから行います。
しかし、ログインができない状態でも、プラグインの削除は行えます。
Xサーバーの「.htaccessの編集」の画面に戻ってください。
※削除する前に、テラパッドなどにコピペして、バックアップを取っておきましょう。
「SiteGuard」の削除方法は、
#SITEGUARD_PLUGIN_SETTINGS_START から
#SITEGUARD_PLUGIN_SETTINGS_END
まで選択して、消します。
削除したら、画面右下の「.htaccessを編集する(確認)」をクリックします。
これで完了ではありません。
問題ないか確認して、もう一度、画面右下の「.htaccessを編集する(確定)」をクリックします。
以上で、「SiteGuard」は削除できました。
ログインしてみる
「SiteGuard」が削除できたら、あたらめてログインを試みます。
ログインするときに注意したいのが、ログインURLが初期化されていること。
「SiteGuard」でログインURLを変更した人は、「自分のドメイン/login_xxxxx」にアクセスしても、404エラーで返されます。
「自分のドメイン/wp-login.php(初期状態)」でアクセスしてみましょう。
これで無事にログインできたと思います。
まとめ
さいごに忘れてはいけないのが、「SiteGuard」の再インストールです。
ログインしてからプラグインを確認してください。おそらく、「SiteGuard」が残っているはずです。
残っていても正常に機能していないので、削除してから再インストールしておきましょう。
また、サーバー移転後は、プラグイン「Hello Dolly」が勝手に入るようです。不要なので削除しましょう。