Php 在线项目的Symfony路由问题

Php 在线项目的Symfony路由问题,php,iis-7,routing,symfony1,isapi-rewrite,Php,Iis 7,Routing,Symfony1,Isapi Rewrite,我在Win XP/IIS 7机器上安装了一个Symfony项目,并安装了Isapi重写。当我转到前端(我的主)应用程序时,似乎路由根本不起作用。我总是以我的默认模块/操作结束。但是,如果我关闭no\u script\u name=off(在应用程序的settings.yml文件中),则一切正常。我还有一个管理应用程序作为项目的一部分(它也有no\u script\u name=off),这也很好用。这似乎应该是一个简单的问题,但我们已经为此工作了4个小时。任何帮助都将不胜感激,谢谢 编辑:为了使

我在Win XP/IIS 7机器上安装了一个Symfony项目,并安装了Isapi重写。当我转到前端(我的主)应用程序时,似乎路由根本不起作用。我总是以我的默认模块/操作结束。但是,如果我关闭
no\u script\u name=off
(在应用程序的settings.yml文件中),则一切正常。我还有一个管理应用程序作为项目的一部分(它也有
no\u script\u name=off
),这也很好用。这似乎应该是一个简单的问题,但我们已经为此工作了4个小时。任何帮助都将不胜感激,谢谢

编辑:为了使用调试工具栏,我将前端控制器的环境更改为dev,并发现无论我的URL看起来如何,它都会显示

将路由“主页”(/)与参数数组(‘模块’=>‘默认’、‘操作’=>‘索引’、)匹配


无论我做什么,module总是等于default

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


但是,这是可能的。您需要遵循这一点:

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


但是,这是可能的。您需要遵循以下步骤:

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

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

我在IIS教程()中尝试了Symfony中的所有内容,但没有任何效果。如果其他人遇到此问题,请先尝试添加上述代码,然后再修改任何设置或.htaccess规则。

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

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

我在IIS教程()中尝试了Symfony中的所有内容,但没有任何效果。如果其他任何人遇到此问题,请先尝试添加上述代码,然后再修改任何设置或.htaccess规则。

检查IIS的新Url重写模块:


它甚至向IIS管理器添加了一个工具,用于导入和转换mod_重写规则

查看新的IIS Url重写模块:

它甚至向IIS管理器添加了一个工具,用于导入和转换mod_重写规则