CakePHP $this->redirect($this->Auth->redirectUrl());在重定向中复制基本网址



在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来解决这个问题。

相关内容

  • 没有找到相关文章

最新更新