2026年5月20日
2026年5月20日
WordPressのログインページが無限リダイレクトする場合の解決方法
はじめに
WordPressのログイン画面でユーザー名・パスワードを入力すると、ログイン画面に戻ってしまう「無限リダイレクトループ」は非常に多いトラブルです。原因はサイトURLの不一致・Cookieの問題・SSL設定の不整合が大半です。
原因と確認方法
| 原因 | 症状の特徴 |
|------|-----------|
| siteurl/homeのURLミスマッチ | HTTPとHTTPSが混在している |
| CookieのドメインURL不一致 | 別ドメインに移行した直後 |
| SSLオフロード環境 | ロードバランサー経由のアクセス |
| セキュリティプラグイン | ログインページが別URLに設定されている |
解決手順
ステップ1:wp-config.phpにURLを強制定義
// wp-config.php の「/* That's all, stop editing! */」より上に追加
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
HTTPとHTTPSが混在している場合は https:// で統一します。
ステップ2:WP-CLIでsiteurl・homeを修正
# 現在の値を確認
wp option get siteurl
wp option get home
# 正しい値に更新
wp option update siteurl 'https://example.com'
wp option update home 'https://example.com'
# Cookieをリセット(セキュリティキーを再生成)
wp config shuffle-salts
ステップ3:Cookieの問題の場合
// wp-config.php に追加
define('COOKIE_DOMAIN', 'example.com'); // wwwなし
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
ブラウザのCookieを手動クリアしてから再ログインを試みます。
ステップ4:SSLオフロード環境(ロードバランサー)
// wp-config.php に追加
// ロードバランサーがHTTPS → HTTP変換している場合
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
ステップ5:プラグインの干渉を確認
# すべてのプラグインを無効化して確認
wp plugin deactivate --all
# ログインできたら1つずつ有効化して原因プラグインを特定
wp plugin activate plugin-name
phpMyAdminから修正する場合
-- wp_options テーブルで siteurl と home を更新
UPDATE wp_options SET option_value = 'https://example.com' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://example.com' WHERE option_name = 'home';
注意事項
WP_HOMEとWP_SITEURLを定義するとWordPress管理画面からURLを変更できなくなります- 本番環境での修正後は
define()を削除するか、動的に設定します - wwwあり・なしは必ず統一してください(混在するとCookieが機能しません)
まとめ
ログインリダイレクトループは WP_HOME と WP_SITEURL の定義でほぼ解決します。SSL環境では HTTP_X_FORWARDED_PROTO の対応も確認してください。