WordPressをhttps(SSL)化、さくらインターネットのレンタルサーバーでリダイレクトループさせない「.htaccess」の書き方【後編】
1年以上前の記事です。内容が古い可能性があります。
以下の続きとなります。
WordPressをhttps(SSL)化、さくらインターネットのレンタルサーバーでリダイレクトループさせない「.htaccess」の書き方【前編】
前編はぶっちゃけ、さくらのレンタルサーバーに関してではなく、AWS(アマゾンウェブサービス)に関しての記事になってしまっていました。
タイトルも「AWS(アマゾンウェブサービス)でリダイレクトループさせない「.htaccess」の書き方」に変えたほうが良かったかもしれません。
実際、紹介されているスクリプトはそのための記述となっていますし。(動作確認はしておりませんが)

で、本題です。
前編の最後にAWSの「X-Forwarded-Proto」に当たるのがさくらのレンタルサーバーでは「X-Sakura-Forwarded-For」になる。
みたいなことを書きました。
ここ、実は厳密には違うようでして。。
というのは、前編で紹介したスクリプトの「X-Forwarded-Proto」を単純に「X-Sakura-Forwarded-For」に書き換えただけではちゃんと動いてくれなかったから。
こんな感じですね。
RewriteEngine On
# Force HTTPS
RewriteCond %{HTTP:X-Sakura-Forwarded-For} !=https
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]
これではダメでした。
ただし、考え方的には同じなようでして、それに関しては以下のサイトを参考にさせていただきました。
さくらのレンタルサーバで共有SSLを使用する場合、以下の点に留意する必要がある。
(中略)
PHP からの参照時
- SSLアクセス時には、$_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’] および $_ENV[‘HTTP_X_SAKURA_FORWARDED_FOR’] にはクライアント(リクエスト元)のIPアドレスが設定される。
- SSLアクセスした場合であっても、mod_rewrite.c の RewriteRule によりリライトされるケースでは、$_SERVER[‘HTTPS’] と $_ENV[‘HTTPS’] が設定されない。
RewriteRuleの[R]フラグによりhttps://〜にリダイレクトされた場合には ‘on’ が設定される。WordPress 等では、SSL 接続かどうかを $_SERVER[‘HTTPS’] もしくは $_ENV[‘HTTPS’] の状態で判別している。
このため、上記のように $_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’] が設定されているかどうかで SSL かどうかを判別し、SSL の場合には $_SERVER[‘HTTPS’] および $_ENV[‘HTTPS’] に ‘on’ を設定するような処理を追加してやる必要がある。
情報源: さくらのレンタルサーバ・共有SSLで .htaccess によりSSLのみのアクセス許可を設定する方法 – 風柳メモ
原因がロードバランサにあるのかどうかはわかりませんが、さくらのレンタルサーバーで「RewriteRule」を使ったリダイレクトをすると「$_SERVER[‘HTTPS’] 」や「 $_ENV[‘HTTPS’]」が設定されず、それが原因でSSL通信と判断されずにリダレクトを起こしているとのこと。
ということで、$_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’] が設定されているかどうかで SSL かどうかを判別し、SSL の場合には $_SERVER[‘HTTPS’] および $_ENV[‘HTTPS’] に ‘on’ を設定するような処理を追加してやる
ということになります。
ということで最終的には上記サイトの記述を使わせていただくことにしました。。
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
情報源: さくらのレンタルサーバ・共有SSLで .htaccess によりSSLのみのアクセス許可を設定する方法 – 風柳メモ
ポイントは2行目ですね。
こちらで「X-Sakura-Forwarded-For」が設定させているかどうかを見てリダイレクトをさせています。
むしろ、1行目はなくても動くようですね。(念のため、そのままにしておりますが。。)
なんだかまだ、モヤモヤしているのですが、一先ずこれで解決。
とはいえ、
将来的にさくら側で仕様変更が行われると、%{HTTP:X-Sakura-Forwarded-For}による判別が出来なくなる可能性はある。
とのことですから、いずれ時間を取って根本的な解決方法を探ってみたいと思います。
アドセンス広告メイン
関連記事
-
-
直帰率と離脱率の違い
1年以上前の記事です。内容が古い可能性があります。Google Analytic …
-
-
iPhoneで自分のメールアドレスを確認する方法
1年以上前の記事です。内容が古い可能性があります。MMS、Eメール(i)、通常の …
-
-
電子書籍の「自炊」はもともと「自吸」だった
1年以上前の記事です。内容が古い可能性があります。先日、通勤途中の車の中で聞いて …
-
-
侮れない! P検3級への道 【液晶ディスプレイ編】
1年以上前の記事です。内容が古い可能性があります。週末に行なっているパソコン教室 …
-
-
インターネット広告ってこんなに種類があるの?料金相場一覧
1年以上前の記事です。内容が古い可能性があります。Webサイトに関しては相場など …
-
-
池袋駅⇔赤羽駅間の電車移動、各駅停車でも「湘南新宿ライン」よりも「埼京線」の方が早い
1年以上前の記事です。内容が古い可能性があります。毎日電車を使って東京まで行って …
-
-
「クラス替え」の真実、娘に話したら知ってた
1年以上前の記事です。内容が古い可能性があります。出先で記事を見かけてこれは小6 …
-
-
SNSでアップした画像は削除できないことがある
1年以上前の記事です。内容が古い可能性があります。SNSでは、画像を削除してもし …
-
-
WordPress(ワードプレス)のヘッドライン表示は「query_posts」じゃなくて「get_posts」 #wp
1年以上前の記事です。内容が古い可能性があります。プログラムのプロではないのです …
-
-
OpenPNE 2.14.0にアップグレード(7/29追記)
1年以上前の記事です。内容が古い可能性があります。OpenPNEの安定版が「2. …







