CakePHP 2.x:如何覆盖指向索引页的URL?
我得到了这个问题:CakePHP 2.x:如何覆盖指向索引页的URL?,url,cakephp,indexing,routing,cakephp-2.x,Url,Cakephp,Indexing,Routing,Cakephp 2.x,我得到了这个问题: Router::connect('/',array('controller' => 'Controller','action' => 'login')); 这将显示www.mysite/controller/login作为站点URL 我想用www.mysite.com覆盖www.mysite.com/controller/login,但仍要转到登录页面。有人知道如何使用Cake 2.x吗?它的行为与您描述的不完全一样 以下内容的作用: Router::conne
Router::connect('/',array('controller' => 'Controller','action' => 'login'));
这将显示www.mysite/controller/login
作为站点URL
我想用
www.mysite.com
覆盖www.mysite.com/controller/login
,但仍要转到登录页面。有人知道如何使用Cake 2.x吗?它的行为与您描述的不完全一样
以下内容的作用:
Router::connect('/',array('controller' => 'Controller','action' => 'login'));
允许您在浏览器中键入www.mysite.com
,并获取www.mysite.com/controller/login
呈现的视图
它的工作原理类似于url重写,而不是重定向。因此,上述措施应能如期发挥作用。但是,如果这不是一个示例,请尝试以不同的方式命名控制器,因为这可能会导致CakePHP出现问题。正如Inigo
Router::connect()所述,
只是将路由/URL连接到控制器操作。因此,通过您定义的路径,您应该能够转到www.mysite.com
,并且您的登录操作将得到服务(尽管我不确定将基本URL用作登录页面是否是一个好主意)
它不会阻止www.mysite.com/controller/login
,因为这是CakePHP的默认路由之一
要禁用默认路由,需要从routes.php
中删除此行:-
require CAKE . 'Config' . DS . 'routes.php';
请注意,如果删除此行,则必须在应用程序的routes文件中为所有页面定义路由。这不一定是一件坏事,这是一本很好的读物。当我使用“Auth”组件时,我不得不添加到函数中
beforeFilter()
我的控制器的这一行:
$this->Auth->allow('anaaction','anotherAction','**login**')代码>谢谢。你知道如何重写url吗?如上所述,url重写是默认的。如果需要重定向,可以在操作中调用$this->redirect()
。我不需要重定向。我只需要在不使用任何jsp的情况下从URL栏“隐藏”“/controller/login”如果您加载了Auth
组件,这可能就是原因,这就是预期的行为。您可以修改登录操作
以指向/
。见