発生した問題
WP管理画面に入れない!
パスワード変更しても入れない!
キャッシュクリアしても入れない!
URLをリダイレクトではなく、wp-login.phpから入るようにしても入れない!
よく見るとこんなメッセージが。
Error: Cookies are blocked or not supported by your browser.
You must enable cookies to use WordPress.
いや、クッキーとかキャッシュとかブラウザのCookie設定も確認したって。
シークレットウィンドウでも試してみた。
さらに、
管理画面にログインできない状態。
さらに・・・
管理画面に入れないため、phpMyAdminで直接パスワードを書き換えることにした。
<手順>
-
phpMyAdmin にログイン
-
wp_users テーブルを開く
-
対象ユーザーの user_pass を編集
-
関数を MD5 にして新しいパスワードを入力
-
保存
この操作自体は正常に完了したが、
それでも管理画面にはログインできなかった。
👉 つまり、パスワードは正しくてもログイン不可という状態。
環境
WordPress本体:/wp
サイト表示URL:https://example.com/
管理画面URL:https://example.com/wp-admin/
独自ドメイン + SSL(Let's Encrypt)
原因
そうしてやっと突き止めたのが、
wp-config.php に Cookieの保存パスが /wp/ に固定されていた。
define('COOKIEPATH', '/wp/');
define('SITECOOKIEPATH', '/wp/');
define('ADMIN_COOKIE_PATH', '/wp/');
define('PLUGINS_COOKIE_PATH', '/wp/');
この状態だと、
/wp-admin/
/
で Cookie が正しく参照されず、
WordPressが「Cookieが使えない」と誤判定する。
独自ドメイン取得に伴うURL変更とSSL切替をきっかけに、
それまで表面化していなかった Cookie Path の不整合が発覚したというわけだ。
解決策
Cookieのパスを すべて / に統一する。
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
define('ADMIN_COOKIE_PATH', '/');
define('PLUGINS_COOKIE_PATH', '/');
保存後、前のウィンドウにはキャッシュが残ってるのか、以前と変わらず入れなかったので、新しいウィンドウで立ち上げアクセスして、正常にログイン!
ポイント
このエラーは ブラウザの問題ではない
/wp 設置 + ルート表示構成では Cookie Path の不整合が起きやすい
SSL切替時に特に発生しやすい
まとめ
Cookies are blocked or not supported by your browser が出たら、
まず wp-config.php の Cookie Path を疑う。
同じ構成でハマった人の参考になれば。