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

  • 公開日:2018/1/7
この記事は最終更新日から6年以上が経過しています。

さくらのレンタルサーバーにて、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化プラグインの使い方 | さくらのサポート情報

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