IT女子のお気に入りフォルダ

管理人の備忘録と実践を兼ねた(出来るだけ)役に立つ情報を配信するブログです。

[WordPress]さくらのレンタルサーバにて常時SSL化したらトップ以外が「https://」ではなく「http://」になってしまった

さくらのレンタルサーバーにて、WordPressで作成しているサイト全体を常時SSL化しました。
ところが、トップページ以外のページは「https://」ではなく「http://」になってしまう問題が発生しました。他のサーバーではこのような現象は起こったことがなく、少し苦労したので解決策をメモ。

テンプレートではget_template_directory_uri()を使用しています。
で、いろいろ調べて見た結果、こちらの記事を発見しました。

CoreSSLとさくらのレンタルサーバーでSSL化

こちらの記事によると、さくらのレンタルサーバの仕様上、非SSL通信とSSL通信を同じポート番号で行なっていることが問題で、WordPressのis_ssl()という関数が機能せず、get_template_directory_uri()が返すURIがすべて「http://」になってしまうそうな・・・

そこで、wp-config.phpに以下のコードを書けばよいと紹介されていましたが、私はそれでは解決できませんでした。

if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
	$_SERVER['HTTPS'] = 'on';
	$_ENV['HTTPS'] = 'on';
}

そこで、もう少し調べてみると・・・
さくらインターネットから「さくらのレンタルサーバ 簡単SSL化プラグイン」というプラグインが用意されていることがわかりました。
これをインストールして、有効化するだけで対応できました。
(結局、プラグインかよっ!)

詳しくはさくらのサポート情報で公開されていますので、こちらをどうぞ。
【WordPress】常時SSL化プラグインの使い方 | さくらのサポート情報

ただし、このプラグインはさくらのレンタルサーバ、さくらのマネージドサーバ上で稼働するものなので、ローカルにテスト環境などを構築される場合は、このプラグインが逆に邪魔になります。ローカル環境では無効にすることをお忘れなく。