まんまタイトル通り。
AWSでRoute53+ELBでやっている際に、
http→httpsと強制的にプロトコルを変更したい的なときのお話。
htaccessでやっちゃおう的な。
fuelphpの場合でも基本的に変わらないんだけど、AWSでELB(Elastic Load Balancing)を通すとちょっと違うので、
そうなった場合にどこを弄ればよいのか的な感じ。
publicフォルダ内にある.htaccessに3行追加してあげればよい。
// public/.htaccess # Make sure directory listing is disabled Options +FollowSymLinks -Indexes RewriteEngine on RewriteCond %{HTTP:X-Forwarded-Port} !^443$ RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker RewriteRule ^(.*)?$ https://%{HTTP_HOST}$1 [R=301,L] # NOTICE: If you get a 404 play with combinations of the following commented out linesってな感じ。
ELBを通すと通常と違ってSERVER変数のhttpsとか取る事は出来ない?みたい、よくわからんけど。
というのもインスタンスに直接https通信してるわけではなくて、ELBを通してるからだと思うけど。
なので諸々判別するためのRewriteCondを書いてあげてリダイレクトしてあげるみたいな。
ってな感じでやれば何も問題なくhttp→https通信になる。
サイトの一部だけhttpsにするのもいいんだけど、
httpとhttpsではブラウザのcookieは共有出来ないわけだから、全体をhttpsにした方が便利でもあるし。
まぁでも普通にfuelphpのconfigとかでssl = onみたいな設定をしたら強制httpsになるみたいな、
そんな便利な機能を追加してくれないかなと思ってみたり。
0 件のコメント:
コメントを投稿