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}による判別が出来なくなる可能性はある。
とのことですから、いずれ時間を取って根本的な解決方法を探ってみたいと思います。
アドセンス広告メイン
関連記事
-
-
Windows XPで「メイリオ(Meiryo)」フォントを使おう
1年以上前の記事です。内容が古い可能性があります。つい最近まで知らなかったのだが …
-
-
ライブドアブログで「○ん○ん」を実現する方法
1年以上前の記事です。内容が古い可能性があります。以前、ライブドアブログで丸数字 …
-
-
新管理画面でもブックマークレットがカスタマイズできる
1年以上前の記事です。内容が古い可能性があります。「ブックマークレットをカスタマ …
-
-
perlでハッキングツールは作れるのか?
1年以上前の記事です。内容が古い可能性があります。過去のエントリーで「ハッキング …
-
-
水筒の水漏れ防止のポイント。キャップを締めた際の違和感に注意
1年以上前の記事です。内容が古い可能性があります。水濡れタブレット復活日記。 前 …
-
-
無駄なプリンターを表示させない方法
1年以上前の記事です。内容が古い可能性があります。会社でパソコン(Windows …
-
-
「ニンテンドー3DS」持ち運び時はゲームカード(カートリッジ)の飛び出しに注意!
1年以上前の記事です。内容が古い可能性があります。ニンテンドー3DSは持ってない …
-
-
スマホ(スマートフォン)やノーパソ(ノートパソコン)の省エネ技。ブラウザの無駄なタブは閉じるべし
1年以上前の記事です。内容が古い可能性があります。パソコンでのデータのようですが …
-
-
「Message bird(メッセージバード)」で機種変更をする方法
1年以上前の記事です。内容が古い可能性があります。以前、現代の瓶詰めの手紙として …
-
-
Skype(スカイプ)を使ってチャットをするまで(インストール編)
1年以上前の記事です。内容が古い可能性があります。1. ID取得編 → …