在CakePHP v2.3.8中,用户登录后,我想将它们发送到他们试图访问的页面。 CakePHP耗尽了一个子目录(下例中的baseurl):
$this->redirect($this->Auth->redirectUrl());
发送给我:
http://example.com/baseurl/baseurl/controller/action
它应该发送给我:
http://example.com/baseurl/controller/action
其他人是否在重定向中获得了重复的基本网址?有人知道怎么解决吗? 这是我第一次使用CakePHP,所以如果我没有提出正确的问题或提供所需的信息,请告诉我。谢谢!
注意:我看到与a bug in RC version 2.4类似的问题。但是,我正在运行v2.3.8,所以我不认为这是确切的问题。 this commit中的修复程序与我在v2.3.8中的代码相同。
答案 0 :(得分:2)
问题在于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来解决问题。