ワードプレスが毎回セッション切れでログインのやり直しをさせられる。


スポンサーリンク

ワードプレスのセッション切れは、結構でているみたいですね。

つか、うちでもあった(笑)

で、調べました。


セッション切れの原因



セッション切れの原因は、ワードプレスのセッション開始時間の監視時間とタイムゾーンが一致しない場合に起こるようです。

対策としてクッキーの削除。

また、サイトURLとホームURLが一致していないと起こるということも言われています。

けど、多くの原因は、時間的なものらしく、様々公開されている対策のほとんどが効果をだしていないようでした。

実際、うちもダメ元で実験しましたけど、解決に至りませんでした。


セッション切れでログイン画面になってしまう場合の効果的な対策



うちだけ?散々ためしてみたあとでたどりついた結果なので現在悩んでいる方のお役にたてばということで、

書いておきます。


wp-config.php に以下の1文を追加しました。
define('RELOCATE',true);



RELPCATE 設定でセッション切れが治る理由




そもそも、RELOCATE の設定は
RELOCATE が true に設定されている場合、ログイン画面にアクセスした際のパスを使ってサイト URL が更新されます。これで新しい URL で管理画面を使うことができるようになりますが、それ以外の設定を変更するわけではありません。他の設定は手動で変更する必要があります。


つまり、ワードプレスの中でログインURLとなんらかのアクションが起こった時のURLが異なるということです。

ワードプレスの設定で site_url と home_url が一致していても起こる・・・

例えば、ワードプレスは意図的に、これをかえることができますね。

home url と site url 。 .htaccess と index.php をルートディレクトリにコピー(index.php の一部を変更)すれば、いいわけですが。

同じことをやっていても問題なく動いているサイトもあるわけで・・・

結局のところ、うちの場合、 https に切り替えたことでここが変わるようになったということのようです。


現在のサーバーの無料 https は、リダイレクトの嵐になるらしく、php の一部のコマンド、例えば、PHPで外部URLのファイルを読み込んで表示させる為に書いた file_get_contents などは無限ループに陥って使うことができませんでした。(対策として、http ではなく、絶対パス指定でデータを引っ張った)

ということで、wp-config.php に以下の5行を追加するのがいいのかもしれないと思ったりします。
※RELOCATE の設定で file_get_contents を http で引っ張れるようになったかは、まだ試していません。

define('RELOCATE',true);
define( 'FTP_HOST', 'XXXX' );
define( 'FTP_USER', 'XXXX' );
define( 'FTP_PASS', 'XXXX' );
define( 'FTP_SSL', false );


※define(‘RELOCATE’,true);は、動作が正常な場合には取り外してください。


スポンサーリンク