WordPress ForceLoginプラグイン ログインがループしちゃう問題

会員制ページ

会員しかログインできないホームページを運用しています。WordPressのログイン機能を利用しています。

プラグインは ForceLoginを利用しています。

結構便利に利用していたのですが、利用者より、ログインできないとの連絡が。

ログインできない原因

ログインできない原因は、ログインしたはずなのに、再度ログイン画面が表示されるという問題で、

https://hoge.techlive.tokyo

にアクセスすると、勝手にwp-loginに飛ばしてくれるのはいいのですが、その後のリダイレクトがまずいようです。

https://hoge.techlive.tokyo/wp-login.php?redirect_to=http%3A%2F%2Fhoge.techlive.tokyo%2F

ログイン後 http に飛ばされ

http://hoge.techlive.tokyo

またログインが必要と判断されて、ここに飛ばされてしまうというループにはまります。

https://hoge.techlive.tokyo/wp-login.php?redirect_to=http%3A%2F%2Fhoge.techlive.tokyo%2F

解決方法

同じ話題がここにあります。

しかしながら、どう解決していいか分からなかったので、独自解決ですが、WordPressをインストールしたプラグインディレクトリ上の

/home/users/1/main.jp-hoge/web/techlive/wp-content/plugins/wp-force-login

wp-force-login.php

を編集します。万一の事があるといけないので、編集するファイルはバックアップを作っておいた方がいいです。

この行を探します

	// Get visited URL
	$schema = isset( $_SERVER['HTTPS'] ) && 'on' === $_SERVER['HTTPS'] ? 'https://' : 'http://';

これを、リダイレクトする時に、どちらの場合もhttpsに飛ぶようにします。

	// Get visited URL
	$schema = isset( $_SERVER['HTTPS'] ) && 'on' === $_SERVER['HTTPS'] ? 'https://' : 'https://';

解決後

上記対策後、ログインしようとすると、リダイレクト先は https:// になります。

https://hoge.techlive.tokyo/wp-login.php?redirect_to=https%3A%2F%2Fhoge.techlive.tokyo%2F

これにより、リダイレクト後はちゃんと、

http://hoge.techlive.tokyo

にアクセスされるようになりました。