====== リダイレクトで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
参考:[[https://qiita.com/xtetsuji/items/36d85bb49a518ed7b1da|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';