在CakePHP v2.3.8中,用户登录后,我想将他们发送到他们试图访问的页面。CakePHP的子目录(下例中的baseurl)已用完:
$this->redirect($this->Auth->redirectUrl());
将我发送到:
http://example.com/baseurl/baseurl/controller/action
它应该把我送到:
http://example.com/baseurl/controller/action
是否有其他人在重定向中获得了重复的基本url?有人知道怎么修吗这是我第一次使用CakePHP,所以如果我没有提出正确的问题或提供所需的信息,请告诉我谢谢!
注意:我在RC版本2.4中看到了一个类似的bug。然而,我运行的是v2.3.8,所以我不认为这是确切的问题。此提交中的修复程序看起来与我在v2.3.8中的代码完全相同。
问题出现在lib/Cake/Controller/Component/AuthComponent.php 的第680行
return Router::url($redir);
将其更改为以下内容(这是2.3.9中的更新)修复了它:
return Router::url($redir + array('base' => false));
将其更改为这个(这是2.4中的更新):
return Router::normalize($redir, false);
请参阅此处的提交消息:https://github.com/cakephp/cakephp/commit/8133f72
显然,编辑CakePHP核心文件不是一个好主意,所以我升级到2.3.9来解决这个问题。