CakePHPのデフォルトルーティングを解除する方法


cake_users_login

※CakePHP2のお話ですそれ以外は知りません

ふとCakePHPで作ったことを隠蔽したいな~と思っていました。
特にurlは独特の表記なので、これくらいは変更しないとまずそうだな〜と。

なのでCakePHPのRouterを使ってせっせと変更しておりました。

しかし

Router::connect('/admin'array('admin'=>'true', 'controller'=>'users', 'action'=>'index'));

/adminにアクセスされた時にUsersControllerのadmin_indexを実行してくれますが
同じくadmin/users/indexにアクセスしてもUsersControllerのadmin_indexが実行されてしまいます。

これはどうしたことか..
Router::connectを行なっても元のUrlで表示できてしまいます。
早速ドキュメントがあるか探してみたのですが見つからない…

まさかデフォルトのルーティングはCloseにできないのか..っと思いましたが

これでいけるんじゃねと思い、ルーティング設定を行った後の一番下に以下のルーティング設定入れてみたら

Router::connect('/*',array('controller'=>'hoge','action'=>'fuga'));
※hoge fugaは仮ですがNotfoundController的なものや存在しないコントローラでも良い

できた?!

俺天才っと思いふとapp/Config/routes.phpの下の方を読んでいると

CakePHP:Load the CakePHP default routes. Only remove this if you do not want to use the built-in default routes.

俺:「ファッ!?」

CakePHP:Load the CakePHP default routes. Only remove this if you do not want to use the built-in default routes.

俺:「……」

っと冗談はさておき(冗談ではないが…)本題に入るとどうやらlib/Config/routes.phpでdefaultのルーティングを構築しているみたいです。

なので

require CAKE . 'Config' . DS . 'routes.php';

コメントアウトするだけでCakePHP独特のUrlを排除できるみたいです.

知らなかった…

でもCakePHPで作られたサイトCakePHPの特徴全然消してなくね?ってな感じでしたからないのかと思ったけどあるんですね!

今日も学びを得てしまった()
でわでわ

Leave a Comment

*