2017-04-09 47 views
0

我有一個帶有操作登錄的控制器MyUsersController。 我制訂這跟:如何在CakePHP 2和3中正確使用Router Connect方法?

$routes->connect('/member/login', [ 'controller' => 'MyUsers', 'action' => 'login', 'plugin'=>false, 'prefix'=>FALSE]); 

現在我可以訪問此動作「登錄」使用這兩個網址,這是不利於搜索引擎優化。

http://localhost/cakephpapp/member/login 

http://localhost/cakephpapp/my-users/login 

那麼,如何禁用第二個URL呢?

我試過這個代碼工作正常,但我不知道這是否是正確的方法。

$routes->redirect('/my-users/login', '/member/login'); 

回答

2

有一個在默認路由文件,提供的回退,使您可以訪問使用controller/action頁面線。這真的可以幫助您快速搭建應用程序。在CakePHP 3中,這是: -

$routes->fallbacks('InflectedRoute'); 

正如文件中所評論的,您可以/應該在您爲應用程序設置路由後刪除此行。如果你刪除它,它也將阻止你的錯誤日誌填充錯誤,比如'缺少控制器',這可能是生產站點的問題,特別是如果它正在替換現有的錯誤。

在CakePHP 2等值線是這樣的: -

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

刪除這些線意味着你必須確定你的應用程序的所有路線,但很可能不是依靠AUTOMAGIC路線是個好習慣Cake(或任何框架)。 Phil Sturgeon有一篇很好的文章:Beware the Route to Evil

相關問題