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}による判別が出来なくなる可能性はある。
とのことですから、いずれ時間を取って根本的な解決方法を探ってみたいと思います。
アドセンス広告メイン
関連記事
-
-
「くぁwせdrftgyふじこlp」ってなんの暗号?
1年以上前の記事です。内容が古い可能性があります。たまにtwitter(ツイッタ …
-
-
ワードプレス(WordPress)で「続きを読む」を実装する方法 #wp
1年以上前の記事です。内容が古い可能性があります。ワードプレス(WordPres …
-
-
いじめをなくすには犬を飼え。猫じゃダメです
1年以上前の記事です。内容が古い可能性があります。いじめが問題視されていますが、 …
-
-
ブログの記事にブコメ一覧を表示させるようにした
1年以上前の記事です。内容が古い可能性があります。ブコメってのはブックマークコメ …
-
-
2ちゃんねるへのあてつけ?livedoorニュースは堂々引用可能
1年以上前の記事です。内容が古い可能性があります。まあ、いまさらこういったことを …
-
-
ツイッターとiPhoneの連絡先を同期する方法
1年以上前の記事です。内容が古い可能性があります。FacebookとiPhone …
-
-
イラストレータCS3で一発モノクロ変換
1年以上前の記事です。内容が古い可能性があります。新しいマシンが来てアドビクリエ …
-
-
自分専用のハッシュタグでToDo管理 【Twitter(ツイッター)】
1年以上前の記事です。内容が古い可能性があります。先日、ToDoリストをツイッタ …
-
-
Illustrator(イラストレーター)でマウス操作にSHIFT(シフト)キーやALT(オルト)キーを組み合わせる場合は「マウスクリック」→「キーをプレス」の順番
1年以上前の記事です。内容が古い可能性があります。Illustrator(イラス …
-
-
Adsense(アドセンス)でフィルタリングをうまく活用しよう
1年以上前の記事です。内容が古い可能性があります。先日、「滞在時間が長いページの …