如何正确执行URL重定向?

时间:2011-03-04 22:54:54

标签: url redirect symfony1

在动作类中,我在函数末尾有这个:

$this->redirect("/myproject_dev.php/login/");

我在其中硬编码url中的开发项目名称。当然,它在我正在进行开发时有效,但在生产方面,我需要删除它。

那么,如何在代码中找到项目名称(“myproject_dev.php”)?所以我可以这样做:

$this->redirect($myProjectDevName . "login/");

或..有一种聪明的方法来处理这个问题吗?

感谢。

------ ADDition ---

所以,我按照建议使用了public_path。但它只返回根路径。

我想知道当我在开发模式下运行时是否有一个函数:

http://mydomain.com/myproject_dev.php/whatever   

在其动作类中:     $这 - >重定向(public_path( '登录')); 并导致     http://mydomain.com/myproject_dev.php/login

如果我在生产中运行:     http://mydomain.com/whatever
动作类没有变化:     $这 - >重定向(public_path( '登录')); 它将返回此:     http://mydomain.com/login

或..如何获取应用程序名称和symfony环境名称?

:)

3 个答案:

答案 0 :(得分:1)

您应该使用symfony路由系统并从routing.yml调用路由规则:

$this->redirect('@login');

通过这种方式,它可以与您的环境分开,当您准备好投入生产时,您无需更改任何内容。

答案 1 :(得分:0)

答案 2 :(得分:0)

试试这个把它放在你的功能

$this->redirect("MODULENAME/ACTION");

ex: $this->redirect("pim/admin"); 

这会将您重定向到pim模块管理操作...