我在 IIS 上运行 PHP 7.3 应用程序,使用 FastCGI 处理程序来执行文件。在浏览器中请求以 *.php 结尾的 URL 时,一切正常。
但是,应用程序的某些路径如下所示:http://my-site.com/image.php/my_image_name.png
,即 PHP 文件的文件名后面还有一些内容,这不是查询字符串。对于这些 URL,IIS 始终以 HTTP 404 和消息“未指定输入文件”进行响应。
我该如何修复这个问题?
答案1
为了解析这样的 URL,PHP 脚本使用 PHP 提供的路径信息。使用 FastCGI 处理程序似乎会弄乱此路径信息。幸运的是,PHP 有一个配置选项可以修复这些路径:
导航到您的php.ini
文件并设置以下选项:
cgi.fix_pathinfo=1
这是在 IIS 上托管 PHP 应用程序时 Microsoft 推荐的设置:使用 FastCGI 在 IIS 7 上托管 PHP 应用程序