php – 如何让IIS6识别pathinfo路由而不是返回“404 Undescribed”错误?

我正在用PHP开发一个RESTful Web应用程序.我得到的是:

>在测试服务器上,Windows 7 / Apache 2.2 / PHP 5.2.9(mod_php)
>在生产服务器上,Windows Server 2003 / IIS6 / PHP 5.2.4(php5isapi.dll)

虽然测试环境没有问题,但是生产服务器无法使用pathinfo发送任何RESTful请求(例如,例如/mypath/app.php/controller/id,其中处理脚本是/mathath/app.php)给出了一个很好的空白页面,其中包含以

No input file specified. 

使用firebug,我可以看到响应头是:

HTTP/1.1 404 Undescribed
Proxy-Connection: close
Connection: close
Via: 1.1 XXXXX
Date: Thu, 23 Jun 2011 14:51:18 GMT
Content-Type: text/html
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET, PHP/5.2.4

其中XXXXX是代理的名称.

我google了一下,看起来既不是SO也不是网络的其他部分都可以为这个问题提供切实可行的解决方案.任何线索?

由于生产服务器需要跟上,因此不能重新安装PHP和/或IIS.我能做的是修改IIS / PHP配置,然后重新启动IIS.

提前致谢,

保罗

解决方法:

@hakre发布了一个很好的答案,但这是解决这个问题的另一个问题,我简要报告这个问题是为了给别人节省数小时的痛苦……

我摆脱了这个问题:

>在生产服务器上编辑php.ini,注释掉doc_root = …行;
>重启IIS;
>在生产服务器上启动services.msc,重新启动“万维网发布服务”;

现在,所有页面都能正常报告PATH_INFO.

无论如何,谢谢你的答案!

如果有人关心,this page照亮了我.

上一篇:CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。


下一篇:知方可补不足~sqlserver中对xml类型字段的操作