我遇到了这个问题:
Router::connect('/',array('controller' => 'Controller','action' => 'login'));
这会将www.mysite/controller/login
显示为网站网址
我想仅使用www.mysite.com/controller/login
覆盖www.mysite.com
,但仍会转到登录页面。有谁知道如何用Cake 2.x做到这一点?
答案 0 :(得分:2)
行为这与你描述的完全不同。
以下内容:
Router::connect('/',array('controller' => 'Controller','action' => 'login'));
允许您在浏览器中输入www.mysite.com
,并获得www.mysite.com/controller/login
呈现的视图。
它的工作方式类似于网址重写,而不是重定向。因此,以上应该按预期工作。但是,如果它不是一个示例,请尝试以不同方式命名控制器,因为它可能会导致CakePHP出现问题。
答案 1 :(得分:1)
如Inigo Router::connect()
所述,只需将路由/ URL连接到控制器操作即可。因此,使用您定义的路线,您应该能够转到www.mysite.com
并提供您的登录操作(尽管我不确定将基本URL用作登录页面是个好主意)。
它不会阻止www.mysite.com/controller/login
工作,因为这是CakePHP的默认路由之一。
要禁用默认路由,您需要从routes.php
删除此行: -
require CAKE . 'Config' . DS . 'routes.php';
请注意,如果您删除此行,则必须为应用程序的路径文件中的所有页面定义路线。这不一定是坏事,Beware the Route to Evil对此很好。
答案 2 :(得分:0)
当我使用" Auth"我必须在函数
中添加组件 beforeFilter()
这一行:
$this->Auth->allow('anAction', 'anotherAction', '**login**');