※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の特徴全然消してなくね?ってな感じでしたからないのかと思ったけどあるんですね!
今日も学びを得てしまった()
でわでわ