我正在用PHP开发一个RESTful Web应用程序。我得到的是:
虽然测试环境没有问题,但是生产服务器无法使用pathinfo发送任何RESTful请求(例如,/mypath/app.php/controller/id
这样的页面,其处理脚本为/mypath/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。
提前致谢,
保
答案 0 :(得分:3)
我通过以下方式解决了这个问题:
php.ini
,注释掉doc_root=...
行; services.msc
,重新启动“World Wide Web Publishing Service”; 现在,所有网页都能正常报告PATH_INFO
。
无论如何,谢谢你的答案!
如果有人关心,this page照亮了我。
答案 1 :(得分:2)
取消选中验证文件是否存在复选框。
您可以在网站属性主目录配置中找到 Internet信息服务管理器中的选项{{1} } 应用程序映射。
编辑相关网站的映射并禁用文件存在检查。然后pathinfo应该按预期工作。
答案 2 :(得分:1)
尝试使用ISAPI_REWRITE(http://www.isapirewrite.com/)重写支持