SSL接続にリダイレクトさせる
開発環境:CakePHP2.5.1
フォームなど特定のページのみSSLを強制的にかけたい場合があります。
SSLを強制する
SSLをコントローラー全体にかけたい場合は、該当のコントローラーに下記のコードを追加します。
<?php public $components = array('Security'); public function beforeFilter() { $this->Security->blackHoleCallback = 'forceSSL'; $this->Security->requireSecure(); } public function forceSSL() { return $this->redirect('https://' . env('SERVER_NAME') . $this->here); } ?>
これで非SSLでアクセスしても強制的にSSLページにリダイレクトされます。
特定のアクションのみSSLにする
上記ではコントローラー内の全てのアクションがSSLになってしまいますが、特定のアクションのみSSLにしたい場合は次のようにします。
<?php $this->Security->requireSecure(array('add', 'edit')); ?>
requireSecureの部分に配列でSSLにしたいアクション名を記載すると、そのURLの時のみSSLにリダイレクトされます。