我有一个赢XP / IIS 7机器安装ISAPI重写上symfony项目。当我去到前端(我的主)的应用程序,它似乎是路由根本不起作用。我总是最后在我的默认的模块/动作。不过,如果我turnno_script_name = off(在应用程序的settings.yml文件中),那么一切工作正常。我也有一个管理应用程序作为项目(其中也有no_script_name = off)的一部分,并能正常工作为好。这似乎是它应该是一个简单的问题,但我们一直在努力,现在在这4小时。任何帮助,将不胜感激,谢谢。

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

匹配路线 “主页”(/)为/使用参数阵列( '模块'=> '缺省', '动作'=> '索引',)

不管我做什么,模块都始终等于默认

有帮助吗?

解决方案 2

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

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

我试图在IIS教程的Symfony内的一切( HTTP://trac.symfony-project .ORG /维基/ symfonyOnIIS )并没有什么发挥了作用。如果别人运行到这个问题,请尝试使用任何设置或规则的.htaccess碴之前先加入上面的代码。

其他提示

IIS不支持URL重写非常好,这是Symfony的的路由工作的要求。从本质上讲,Web服务器应该以不存在的文件/路径的所有请求重定向到的Symfony的index.php文件,它的原始URL请求一起传递。 Symfony的解码这个URL和应用它的路由规则。

不过,这是可能的。你需要遵循这样的: Symfony的IIS上

检查出新的URL重写模块为IIS:

http://learn.iis.net/page。 ASPX / 734 / URL重写模块/

它甚至增加了一个工具IIS管理器,它的进口和转换的mod_rewrite规则

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top