Web.config - Rewrite Rule на файл PHP - НЕ обрабатывает PHP-код

97
02 марта 2021, 05:30

Имеется VPS - Windows Server 2016.

В файле web.config следующий код:

<rule name="Test">
  <match url="test.html$"/>
  <action type="Rewrite" url="/php/test.php" />
</rule>

Проблема в том, что web.config перенаправляет на файл test.php, но этот файл не обрабатывается как PHP (выдаёт исходный код на странице).

Что сделать, чтобы обрабатывалось как PHP? Какая-то настройка на сервере?

Буду крайне благодарен за помощь!

Answer 1

Вам нужно включить FastCGI на IIS. Затем изменить под него настройки в php.ini и настроить сопоставление обработчика для расширения php.

Подробная инструкция приведена в официальной документации.

А, вообще самый просто способ поставить PHP на IIS это воспользоваться Microsoft Web Platform Installer.

Answer 2

Проблему нашёл. Оказалась "внезапной"...

Заметил, что часть PHP кода в файле test.php (при перенаправлении из web.config) почему-то комментируется. Попробовал в начале кода вместо <? указать <?php. И всё заработало...

Оказалось, что в php.ini по умолчанию было включено "short_open_tag = Off"

Сделал "On" - всё работает... Капец)

В любом случае, благодарю Streletz за участие. Общение помогает мыслить)

READ ALSO
Laravel API - в директорию домена

Laravel API - в директорию домена

Есть корпоративные сайты, к которым нужно прикрутить форум

122
Mikrotik php_api через safe mode

Mikrotik php_api через safe mode

Необходимо включение режима "Safe Mode" путем передачи запроса посредством php(api) на Mikrotik!

95
перехват ошибки SOAP-ERROR: Parsing WSDL: Couldn&#39;t load from

перехват ошибки SOAP-ERROR: Parsing WSDL: Couldn't load from

Не удается заблокировать ошибку после вызова функции SoapClientОшибка пишется в лог, даже если обернуть функцию в try catch

121
Вывод массива PHP

Вывод массива PHP

Есть массив:

86