Обработчик StaticFile IIS 10, препятствующий пользовательскому глаголу PHP для документа по умолчанию
Я пытаюсь включить IIS 10 для разрешения пользовательских глаголов в PHP. У меня есть PHP_via_FastCGI включен принимать все глаголы. Это работает правильно, когда я указываю полный путь, включая index.php в конце.
Проблема в том, что я не указываю index.php в конечной точке URL. Похоже, при таких обстоятельствах обработчик StaticFile вступает во владение, и я получаю следующую ошибку, которая ссылается на обработчик StaticFile:
HTTP Error 405.0 - Method Not Allowed
The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used.
Обработчик StaticFile также установлен для разрешения всех глаголов.
Также стоит отметить, что в ходе моего исследования я удалил все другие обработчики (кроме PHP_via_FastCGI и StaticFile) для сайта для всего, что ссылается на путь *. WebDav также не установлен. Мой Web.config по существу пуст. У меня есть полный доступ администратора к серверу.
Есть ли другой способ настроить обработчик PHP_via_FastCGI для обработки документов по умолчанию, тем самым удаляя обработчик StaticFile? Или в StaticFile есть конфигурация, которая мне не хватает?
Спасибо за вашу помощь!
1 ответ
Я не уверен, что это лучший способ, но я обошел проблему, отключив обработчик StaticFile в Web.config и добавив правило перезаписи URL. На первый взгляд кажется, что это работает.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<handlers>
<remove name="StaticFile"/>
</handlers>
<rewrite>
<rules>
<rule name="Lang-Redirect">
<match url="(.*)$" />
<action type="Rewrite" url="{R:1}/index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>