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
