cakephp1.2で特定のURL領域(admin)に制限を掛ける
この機能を使って,下記のことを実現できます。
- 普段のアクセスURL:
http://hoge.jp/controller_name/action_name
- 設定すると:
http://hoge.jp/特定の領域名/controller_name/特定の領域名_action_name
結果的に.htaccessで特定の領域にアクセスする場合のBasic認証などが実現できます。
Step1 特定の領域名を決める(例:admin)
Configure::write('Routing.admin', 'admin');
Step2 領域内保護されるアクションを書く
- 'admin' なのでcontroller内のアクション名をadmin_index()にします。
class HogeController extends AppController { var $name = "Hoge"; var $uses = array(); function admin_index(){ #処理をここに書く } }
- アクセスURLは下記になります
http://hoge.jp/admin/hoge/index 注意:http://hoge.jp/admin/hoge/admin_index <== こちらはエラーになります。
Step3 特定の領域内に特定のlayoutにするとか
- app/app_controller.phpを開き下記を追加する
function beforeFilter(){ if (Configure::read("Routing.admin") && !empty($this->params[Configure::read("Routing.admin")])) { // 管理者用のレイアウトを指定 $this->layout = "admin"; } }
Step4 .htaccessで制限を設ける
AuthUserFile /path_to_htpasswd/.htpasswd AuthName "Please enter your ID and password" AuthType Basic require valid-user
これで、設定完了です〜