CakePHP $ this-> redirect($ this-> Auth-> redirectUrl());在重定向中复制BaseURL

时间:2013-08-22 15:37:20

标签: php cakephp cakephp-routing

在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中的代码相同。

1 个答案:

答案 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来解决问题。