目次

リダイレクトでWordPressの管理画面にログインできない

SSL化したことによって、リダイレクト処理がループし、管理画面にログインできなくなった場合の対処法。

ロードバランサのSSLアクセラレータを使っている場合

ロードバランサのSSLアクセラレータを使っている場合、Webサーバ側で $_SERVER['HTTPS'] の値が on にならず、延々とリダイレクトを行うことになります。
この場合は wp-config.php の「編集が必要なのはここまでです」の後に

$_SERVER['HTTPS'] = 'on';

を追加することでリダイレクトが解消されます。
(環境変数の値を上書きするのは、抵抗がありますが・・・)
※ 注意点として wp-settings.php が読み込まれる前に書く必要があります。

/* 編集が必要なのはここまでです ! WordPress でのパブリッシングをお楽しみください。 */

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');

// これを追加する
$_SERVER['HTTPS'] = 'on';

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

サーバ設定を変更できるなら、以下でも対応可能。

SetEnv HTTPS on

参考:PHP の $_SERVER['HTTPS'] が on になる流れ 〜Apache mod_php 編〜

管理画面のサイトアドレスが原因の場合

管理画面で「WordPress アドレス (URL)」や「サイトアドレス (URL)」の設定変更でミスをした場合。 DBにアクセスし、siteurl と home の設定が正しいか確認する。

select * from wp_options where option_name = 'siteurl' or option_name = 'home' order by option_id;
+-----------+-------------+-------------------------+----------+
| option_id | option_name | option_value            | autoload |
+-----------+-------------+-------------------------+----------+
|         1 | siteurl     | https://example.com/cms | yes      |
|         2 | home        | https://example.com/    | yes      |
+-----------+-------------+-------------------------+----------+
2 rows in set (0.00 sec)

# もし間違っていた場合は直す
update wp_options set option_value = 'https://example.com/cms' where option_name = 'siteurl';
update wp_options set option_value = 'https://example.com/' where option_name = 'home';