如何在_redirect调用中格式化URL

时间:2013-05-30 17:02:44

标签: zend-framework

我的项目文件夹是demo,里面有文件夹应用程序,库和公共文件夹。我的index.php在公共文件夹中。所以,我将浏览器指向localhost / demo / public。在我的应用程序文件夹中,我有一个控制器文件夹,里面有我的IndexController。在这个索引控制器中,我的indexAction方法是:

   $this->_redirect('/auth/login');
   $this->_helper->layout->disableLayout();
   $this->_helper->viewRenderer->setNoRender(true);

所以,在这个方法中,我想重定向到同一个控制器指向的AuthController,以及它的动作登录。但浏览器渲染:

在此服务器上找不到请求的URL / demo / public / auth / login。

AuthController在控制器中,而不在公共文件夹中。如何在_redirect调用中正确格式化URL字符串?

2 个答案:

答案 0 :(得分:0)

使用重定向器操作助手

$this->_helper->redirector('auth','login');

答案 1 :(得分:0)

尝试使用url视图助手,例如:

$this->_redirect($this->view->url(array('controller'=>'auth','action'=>'login');

另一种选择是尝试绝对格式化您的网址,例如:

$this->_redirect($_SERVER['HTTP_ROOT'].'/auth/login')

虽然第一个选项应该更安全。