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}による判別が出来なくなる可能性はある。
とのことですから、いずれ時間を取って根本的な解決方法を探ってみたいと思います。
アドセンス広告メイン
関連記事
-
-
「paper.li」のブロックはニュースソース単位でやるのがいい
1年以上前の記事です。内容が古い可能性があります。「paper.li」というサー …
-
-
さくらでEC-CUBEバグ取りメモ
1年以上前の記事です。内容が古い可能性があります。前回、商品検索のバグを取った後 …
-
-
P905iの電話帳をiPhoneに取り込む方法
1年以上前の記事です。内容が古い可能性があります。docomo(ドコモ)ケータイ …
-
-
ツイッター(twitter)とFacebook(フェイスブック)を連携させる方法
1年以上前の記事です。内容が古い可能性があります。以前、「twitter(ツイッ …
-
-
Androidアプリをアフィリエイトする方法
1年以上前の記事です。内容が古い可能性があります。忘れてました。Androidア …
-
-
三つの「かく」で仕事向上
1年以上前の記事です。内容が古い可能性があります。先日、いい話を聞いたのでメモし …
-
-
もうひとつのプルダウンメニュー
1年以上前の記事です。内容が古い可能性があります。そもそも、なんでFLASHでプ …
-
-
「食べログ」有料会員の解約方法【docomoのスマホ契約後の有料サービス解約手順】
1年以上前の記事です。内容が古い可能性があります。スマホ契約時に入らされる有料サ …
-
-
Googleイメージ検索で色が指定できる
1年以上前の記事です。内容が古い可能性があります。配色の話が出たところで、こちら …
-
-
ブログに追記したときに食べログにもそれを反映させる方法
1年以上前の記事です。内容が古い可能性があります。自分のように、「食べログ」を「 …