Назад | Перейти на главную страницу

Как устранить ошибку «Не указан входной файл» в IIS для URL-адресов с косой чертой и содержимого после файла PHP?

Я запускаю приложение PHP 7.3 в IIS, используя обработчик FastCGI для выполнения файлов. При запросе URL-адресов, которые заканчиваются на * .php в браузере, все работает нормально.

Однако некоторые пути приложения выглядят так: http://my-site.com/image.php/my_image_name.png, то есть после имени файла PHP есть еще какое-то содержимое, которое не является строкой запроса. Для этих URL-адресов IIS всегда отвечает HTTP 404 и сообщением «Входной файл не указан».

Как я могу исправить такое поведение?

Для анализа таких URL-адресов сценарии PHP используют информацию о пути, предоставленную PHP. Использование обработчика FastCGI, похоже, искажает эту информацию о пути. К счастью, в PHP есть опция конфигурации, позволяющая исправить следующие пути:

Перейдите к своему php.ini файл и установите следующую опцию:

cgi.fix_pathinfo=1

Этот параметр рекомендуется Microsoft при размещении приложений PHP в IIS: Использование FastCGI для размещения приложений PHP в IIS 7