如何让IIS6识别pathinfo路由而不是返回"404 Undescribed"错误?

Pao*_*fan 5 php iis-6 pathinfo restful-url

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

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

虽然测试环境没有问题,但生产服务器无法使用pathinfo发送任何RESTful请求(例如/mypath/app.php/controller/id,处理脚本所在的页面/mypath/app.php),并给出一个带有消息的漂亮空白页:

No input file specified. 
Run Code Online (Sandbox Code Playgroud)

使用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
Run Code Online (Sandbox Code Playgroud)

XXXXX代理的名称在哪里.

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

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

提前致谢,

保罗

Pao*_*fan 3

@hakre 发布了一个很好的答案,但解决这个问题的是另一件事,我简要报告一下,以节省其他人数小时的痛苦......

我通过以下方式摆脱了这个问题:

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

现在,所有页面都可以PATH_INFO正常报告。

不管怎样,谢谢你的回答!

如果有人关心的话,这一页照亮了我。