2009-11-17 60 views
0

我在安装了Isapi rewrite的Win XP/IIS 7机器上安装了Symfony项目。当我去前端(我的主)应用程序时,似乎路由根本无法工作。我总是最终在我的默认模块/操作。但是,如果我打开no_script_name = off(在应用程序的settings.yml文件中),那么一切正常。我也有一个管理应用程序作为项目的一部分(其中也有no_script_name = off),这也很好。这看起来应该是一个简单的问题,但我们现在已经为此工作了4个小时。任何帮助将不胜感激,谢谢。Symfony路由与在线项目的问题

编辑:我改变了前端控制器的环境中开发,以利用调试工具栏,发现不管我的URL看起来,它总是说

比赛路线“主页”(/)的/有参数数组(“模块” =>“默认”,“动作” =>“索引”)

不管我做什么,模块总是等于默认

回答

1

我找到了解决方案。我将此代码添加到我的index.php顶部

$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL']; 

我试过的Symfony内的一切对IIS教程(http://trac.symfony-project.org/wiki/symfonyOnIIS)并没有什么发挥了作用。如果有其他人遇到这个问题,请在尝试使用任何设置或.htaccess规则之前先尝试添加上面的代码。

+0

我也会试试这个! – Prasad 2011-05-23 08:19:37

1

IIS不支持URL重写的非常好,这是Symfony路由工作的一个要求。基本上,网络服务器应该将所有请求重定向到不存在的文件/路径到Symfony的index.php,并将原始URL请求传递给它。 Symfony解码此URL并应用其路由规则。

但是,这是可能的。您需要按照以下步骤操作:Symfony on IIS