コントローラ単位でSSL必須なページはSSLへリダイレクト
cakephp 1.2.6で開発してます。
コントローラ単位に、SSLが必須であれば強制リダイレクトさせる機能。
//app/config/bootstrap.php <?php // HTTP, HTTPSのサーバ名を定義 define( 'SERVER_HTTP', 'http://hoge.example.com' ); define( 'SERVER_HTTPS', 'https://hogessl.example.com' ); // SSLを利用するサイトはTRUE, 利用しないサイトはFALSEを指定 define( 'USE_SSL', TRUE ); ?>
//app/app_controller.php <?php //プロパティ var $useSSL = true; //SSLを必須化しないコントローラでは、falseにする function beforeFilter() { //SSLの利用が必須の場合をチェック if(USE_SSL && $this->useSSL) { if(env('HTTPS') === 'on' || env('HTTPS') === true) { //nothing to do } else { $HTTPS = SERVER_HTTPS . $this->here; $this->redirect($HTTPS); } } parent::beforeFilter(); }
追記
まともにSSLサイトにリダイレクトさせようとすると、どこかでcommon nameを持っておくか、localhostの証書を読み込んでcommon nameを算出する必要がありますね。ただ、ほとんどのケースでは、SSLはwww付きで始まることが多いでしょうから、そんなあなたにはこのコンポーネントがオススメ。
http://github.com/plank/secured