CakePHP 2.x:如何覆盖指向索引页面的URL?

时间:2015-12-11 14:55:07

标签: url cakephp indexing routing cakephp-2.x

我遇到了这个问题:

Router::connect('/',array('controller' => 'Controller','action' => 'login'));

这会将www.mysite/controller/login显示为网站网址

我想仅使用www.mysite.com/controller/login覆盖www.mysite.com,但仍会转到登录页面。有谁知道如何用Cake 2.x做到这一点?

3 个答案:

答案 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**');