URL params中的“returnUrl”出错

时间:2013-12-20 15:43:27

标签: php url yii

我正在使用Yii框架。

在控制器中,在模型保存之后,我正在尝试将用户重定向到/module/controller/action并将参数(redirectUrl)设置为另一个URL。这是我的代码:

$this->redirect(array('/module/controller/action/', 'redirectUrl'=>'/index.php/some/url/id/'.$id));

这似乎很有效,因为我被重定向到:

http://localhost/index.php/module/controller/action/redirectUrl/%2Findex.php%2Fsome%2Furl%2Fid%2F11

但是当我到达那里时,我收到以下错误:

Not Found

The requested URL
/index.php/module/controller/action/redirectUrl//index.php/some/url/id/11 was not found on this server.

/index.php/module/controller/action/redirectUrl/1234之类的网址可以正常使用。

我不明白我在这里做错了什么,URL似乎是正确编码的。任何想法都会有很大的帮助!

由于

2 个答案:

答案 0 :(得分:2)

您的示例网址仅传递1234作为参数,而不是完整的相对网址,例如/index.php/some/url/id/1234。我想你想要的是:

$this->redirect(array('/module/controller/action/', 'redirectUrl'=>$id));

您可以跳过服务器上的URL规则,并通过以下方式最小化负载:

$this->redirect('/module/controller/action/redirectUrl/' . $id);

答案 1 :(得分:-1)

$this->redirect($this->createUrl('/module/controller/action/', 
array('redirectUrl'=>'/index.php/some/url/id/'.$id));

如果这不起作用

$this->redirect($this->createUrl('/module/controller/action/',     
array('redirectUrl'=>$id)); 

然后在操作中添加'/index.php/some/url/id/'。

http://www.yiiframework.com/doc/api/1.1/CController#createUrl-detail