CakePHP2.x https対応(全画面でhttpをhttpsにリダイレクトする)

CakePHP2.x https対応(全画面でhttpをhttpsにリダイレクトする)をしました。

環境 CakePHP2.10.2 PHP7.1

経緯としては、wifiの脆弱性もあるしユーザ登録・ログインなどがあるサービスの為です。暗号化させて保護された通信をさせないとユーザも安心出来ないですし。

httpからhttpsにリダイレクトするには、通常webサーバ・apacheの設定や.htaccessで良いと思います。ただ、今回はレンタルサーバに乗せているサービスで、かつWordPressのように.htaccessで制御するようにはしておらず(普通はCakePHPでサービス構築する時は.htaccessを使用しないようにすると思います)、アプリ側で制御する必要があったのでCakePHP側で、httpからhttpsへのリダイレクト設定をしました。

スポンサーリンク

対応内容

全ページhttpのアクセスをhttpsへリダイレクトする。

修正ファイル

AppController.php

補足

ローカル・デバッグ環境ではhttps化していない為、デバッグ時を除くようにしました。

参考サイト様を参考にAppController.phpに組み込みました。(↑には今回の対応コードしか書いてませんが、色々カスタマイズしているので抜粋しています。)

これで本番https環境へデプロイしたらうまくいったもののChromeのデベロッパーツールで赤くなっている箇所が。

外部リンクを張っている箇所がhttpになっていた為の警告でした。プロトコルを

から

に変えてあげるのも良いのですが、上にも書いたようにローカルだとhttp環境の為、どちらでも合わせられるように

にしました。これでhttps環境だったら勝手にhttps://になりますし、httpだったらhttp://になります。

参考サイト様

http://www.tailtension.com/cakephp/651/