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にリダイレクトされます。
