SSL接続にリダイレクトさせる
開発環境:CakePHP2.5.1
フォームなど特定のページのみSSLを強制的にかけたい場合があります。
SSLを強制する
SSLをコントローラー全体にかけたい場合は、該当のコントローラーに下記のコードを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 |
<?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にしたい場合は次のようにします。
1 |
<?php $this->Security->requireSecure(array('add', 'edit')); ?> |
requireSecureの部分に配列でSSLにしたいアクション名を記載すると、そのURLの時のみSSLにリダイレクトされます。
柴田 篤志
最新記事 by 柴田 篤志 (全て見る)
- WordPressとCakePHPの共存 - 2014年10月22日
- サイトマップの作成方法 - 2014年10月12日
- INSERTしたIDを取得する - 2014年10月4日