ついさきほどのことです。
あるWordPressのサイトを作成したあとにSSL化しました。
すると、管理画面に入れなくなってしまいました。
WordPress画面のヘッダにはログインしているときのメニューが表示されていたけど、これはログイン情報がクッキーかなにかで残っているのが原因だろうと思って、クッキーを削除してみることに。
クッキーを削除するには、Chromeの設定から、「Cookie と他のサイトデータ」を選択します。
次の画面で「すべての Cookie とサイトデータを表示」を選択します。
右上の「Cookieを検索」のところにサイトのURLを入力します。URLの一部だけでもだいじょうぶです。
インクリメンタルサーチでサイトが絞り込まれますので、すぐに見つかると思います。
該当のURLの右側に表示されているゴミ箱アイコンをクリックすると確認もなくCookieが削除されます。
当該サイトで再読み込みすると、ヘッダーのメニューが消えて、ログインしていない状態になったことがわかりました。
/wp-admin にアクセスすると、/login_xxxxx?redirect_to=https%3A%2F%2F(ドメイン名)%2Fwp-login.php にリダイレクトされ、エラーになります。
ぐぐって解決方法を探してみたところ、データベースの wp_options テーブルに siteurl と home に サイトのURLが保存されているので、そこを書き直せばいいみたいな感じ。
書き換えてみました。
# mysql -u root
> use databasename;
> select option_id, option_value from wp_options where option_value like '%http://%';
(検索結果)
> update wp_options set option_value = 'https://(ドメイン名)' where option_id < 3;
Query OK, 2 rows affected (0.002 sec)
Rows matched: 2 Changed: 2 Warnings: 0
これで復活すると思ったら、まだダメでした。
さらにぐぐってみたら、 wp-config.php を書き換えればいいという方法があったので、そちらも試してみました。
wp-config.php に、以下の内容を書き足します。
define( 'WP_HOME', 'https://(ドメイン名)' );
define( 'WP_SITEURL', 'https://(ドメイン名)' );
結果、これでも復活しませんでした。
さらにぐぐってみたら、.htaccess ファイルがなんたらかんたら。
.htaccess ファイルを見たら、SITEGUARD_RENAME_LOGIN_SETTING_START というコメントが。
wp-login.php が含まれる RewriteRule をコメントアウト。
そして、SiteGuardプラグインのフォルダをリネームして、一旦は動かないようにしました。
# mv wp-content/plugins/siteguard wp-content/plugins/siteguardxx
これでサイトを再読込して /wp-admin にアクセスしたら、無事にログインできました。
.htaccess のコメントアウトを復活させ、SiteGuardプラグインのフォルダ名を戻して完了しました。