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}による判別が出来なくなる可能性はある。
とのことですから、いずれ時間を取って根本的な解決方法を探ってみたいと思います。
アドセンス広告メイン
関連記事
-
-
最近、2ちゃんねるまとめブログ風のランディングページ(偽ブログ)が乱立しているくさい
1年以上前の記事です。内容が古い可能性があります。以前、キラキラ☆ウォーカーに騙 …
-
-
アメブロ(アメーバブログ)をちょっといじってみた
1年以上前の記事です。内容が古い可能性があります。先日、アメブロを本格的に始めた …
-
-
iPhoneのホームボタンの反応が鈍くなった時の対処法
1年以上前の記事です。内容が古い可能性があります。最近、僕のiPhone(アイフ …
-
-
bounceメールを停止したらサーバーが落ちなくなった
1年以上前の記事です。内容が古い可能性があります。自宅サーバーメンテナンスの覚書 …
-
-
グルーポンの「フラッシュマーケティング」とは?
1年以上前の記事です。内容が古い可能性があります。かねてからCMなどで見かけ、先 …
-
-
「食べログ」有料会員の解約方法【docomoのスマホ契約後の有料サービス解約手順】
1年以上前の記事です。内容が古い可能性があります。スマホ契約時に入らされる有料サ …
-
-
ツイッター(Twitter)でツイートを読まれたくなければ鍵かけて(ロックして)ブロック
1年以上前の記事です。内容が古い可能性があります。過去に書いた記事シリーズ。今回 …
-
-
「Google Chrome」で秘密のサイトへ行くならシークレットモード(Ctrl+Shift+N)が便利
1年以上前の記事です。内容が古い可能性があります。激速で人気のブラウザ「Goog …
-
-
さくらインターネットのレンタルサーバーでのWordPress(ワードプレス)運用、同時接続は100人程度が限界
1年以上前の記事です。内容が古い可能性があります。自分、まさにさくらインターネッ …
-
-
iPhoneの連絡先を「iCloud」と「Outlook Express」同時に同期させる方法
1年以上前の記事です。内容が古い可能性があります。iPhoneのOS(iOS)を …