既存サイトを常時SSL化、HTTPSに対応しようとすると、リダイレクトや既存のフルパスの変更など、作業が結構あります。
新規SSLサイトなら手間も少ない・・・と思っていたらさくらのレンタルサーバでワードプレスをSSL化した時にリダイレクトの問題に躓いてしまいました。
参考にさせて頂いた記事の紹介をしています。大変助かりました!
ちなみに、さくらのスタンダードで、SSLはラピッドSSLを利用した環境です。
追記
※現在はさくらサーバーも無料で常時SSL(HTTPS)にできるようになりました。
こちらでサーバーの比較もおこなっていますので参考にしていただければ幸いです。
目次
このページは動作していません
もし、サイトがリダイレクトで見られなくなり、管理画面には行けるようなら、僕と同じ状態かもしれません。
www.ご利用ドメイン.jp でリダイレクトが繰り返し行われました。
Cookie を消去してみてください.
ERR_TOO_MANY_REDIRECTS
となってしまいますが、管理画面にはアクセスでき、一般設定はこのようになっています。
ちょっと不可解な現象だったのですが、
一般設定でwww無しにする >> TOPページでアドレスバーのURLをhttps://wwwにする > 表示できる
管理画面でwww有にする >> TOPページのURL https://www にアクセスできない(リダイレクトでエラー)
というものでした。
色々と調べた結果、以下のサイト、ウェブタタン様の情報を参考にして解決することができました。
ひとおおりのhttps化作業をおこなっても私の場合、CSSがうまく読み込まれませんでした。調べたところ、さくらレンタルサーバーの仕様によりhttpsからhttpへリダイレクトされてしまうようです。
さくらインターネットの場合、httpsの判定は’HTTP_X_SAKURA_FORWARDED_FOR’という文字列で行います。引用 https://webtatan.com/blog/wordpress/wordpress-https-sakura
wp-config.phpの修正
wp-config.phpの先頭に以下のコードを追加します。
if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) { $_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; $_SERVER['HTTP_HOST'] = 'ドメイン名'; $_SERVER['SERVER_NAME'] = 'ドメイン名'; $_ENV['HTTP_HOST'] = 'ドメイン名'; $_ENV['SERVER_NAME'] = 'ドメイン名'; }
www付きだったり、サブドメインだったりする場合は以下のようになりますね。
<?php if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) { $_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; $_SERVER['HTTP_HOST'] = 'www.xxxxxxxxx.jp'; $_SERVER['SERVER_NAME'] = 'www.xxxxxxxxx.jp'; $_ENV['HTTP_HOST'] = 'www.xxxxxxxxx.jp'; $_ENV['SERVER_NAME'] = 'www.xxxxxxxxx.jp'; } /** * The base configurations of the WordPress. * * このファイルは、MySQL、テーブル接頭辞、秘密鍵、言語、ABSPATH の設定を含みます。 * より詳しい情報は {@link http://wpdocs.sourceforge.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86 * wp-config.php の編集} を参照してください。MySQL の設定情報はホスティング先より入手できます。 * * このファイルはインストール時に wp-config.php 作成ウィザードが利用します。 * ウィザードを介さず、このファイルを "wp-config.php" という名前でコピーして直接編集し値を * 入力してもかまいません。 * * @package WordPress */ /* 以下略(通常のwp-config.html) */
.htacceccへの追記
こちらもコードの追加で対応可能でした。
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$ RewriteRule ^(.*)$ https://ドメイン名/$1 [R=301,L] </IfModule>
注意する点はやはり、www付きやサブドメイン、サブディレクトリ(/wp/ や /blog/など、特定のWordPressのTOPページURL)についてです。こちらにはディレクトリの指定も必要な点に注意しましょう。
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$ RewriteRule ^(.*)$ https://www.xxxxxxxxx.jp/wp/$1 [R=301,L] </IfModule>
さくらサーバーは手軽に利用できる価格帯で、おすすめすることが多いです。ラピッドSSLも年額1,500円で利用できるのはありがたいですね。
他にも常時SSLについての記事を書いているのでよかったら参考にして下さい。
HTTPのままだとchromeにアラートが??やはり常時SSL化の波は避けられない・・・複数サイトを保持しているなら無料で独自SSLが使えるサーバーへの引っ越しも有りですね。
常時SSLが無料で導入できるZenlogicでDNSの設定からWordPressインストール、HTTPS化までの道のりをここに記す。
さくらサーバーの常時SSLの対応に役立ちました。ありがとうございます。
コメントありがとうございます!
さくらもようやく無料SSL導入してくれましたね~^^