-4

在 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 中看到了类似的问题。但是,我正在运行 v2.3.8,所以我认为这不是确切的问题。此提交中的修复看起来与我在 v2.3.8 中的代码相同。

4

1 回答 1

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

于 2013-08-22T17:27:48.413 回答