Я пытаюсь включить 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 есть конфигурация, которую мне не хватает?
Спасибо за вашу помощь!
Я не уверен, что это лучший способ, но я обошел проблему, отключив обработчик 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>