[Heroku]herokuでhttpでのアクセスをhttpsへリダイレクトさせる設定
htaccessを使用して、httpでのアクセスを全てhttpsへリダイレクトさせる設定を書いた際に、
少し悩んだのでメモ。
通常のリダイレクト
ググるなどして調べるとまず出てくるのがこの方法。
実際、vagrantなんかでのローカル環境だとこれで問題なくリダイレクト出来た。
1 2 3 |
|
もしくはこれ。
1 2 3 |
|
参考サイト
HTTPSを強制する簡単な設定(htaccess)
.htaccessファイルでHTTPアクセスをSSLにリダイレクトする方法とその逆も
しかし、全く同じファイルをherokuにアップするとリダイレクトループが発生し、動かなくなってしまった。
heroku(aws)環境でのリダイレクト
herokuはaws上で動いています。
で、awsなどで使われている負荷分散ための処理、ロードバランサが設定されていると?上記のエラーは起こってしまうようです。
参考ページ
apache(htaccess)でリバースプロキシー経由のHTTP/HTTPS転送
一部のページでのSSLの設定に困っています
AWS Elastic Load Balancer と Apache を使って HTTPS(SSL) 通信を行うための設定方法
これを回避するには、上記参考サイトにもあるように、HTTP:X-Forwarded-Proto
を見て転送をかけるかどうかを判断してやることでループしないように出来るみたい。
実際に設定した内容は以下。
1 2 3 |
|
これで無事、動作しました。