IIS 7.5 включает глаголы DELETE/PUT с перезаписью URL
Я пытаюсь использовать платформу SLIM (PHP, REST) на IIS 7.5. У меня проблема в том, что мне нужно иметь возможность использовать REST URL и включать PUT,DELETE http verbs.
Я решил проблему REST URL с помощью SLIM на github (см. Web.config ниже). Но я не могу решить проблему с активацией использования глаголов, когда я использую перезапись URL.
Вот ошибка, которую я получаю: Ошибка HTTP 405.0 - Метод не разрешен. Страница, которую вы ищете, не может быть отображена, потому что используется недопустимый метод (HTTP-глагол).
Модуль StaticFileModule
Уведомление ExecuteRequestHandler
Обработчик StaticFile
Код ошибки 0x80070001
Это мой web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule"/>
</modules>
<rewrite>
<rules>
<rule name="slim" patternSyntax="Wildcard">
<match url="*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
1 ответ
Перейдите в "Отображения обработчиков" и выберите используемый обработчик "*.php". Затем нажмите "Изменить", нажмите "Запретить ограничения", выберите вкладку "Глаголы" и выберите "Все глаголы" или задайте нужные в виде списка, разделенного запятыми (в вашем случае "GET, POST, PUT, DELETE").
Изменить: Вы также можете установить флажок "Вызывать обработчик, только если запрос сопоставлен с:" на вкладке "Сопоставление" (слева от вкладки "Глаголы") и выбрать "Файл или папку". Таким образом, вы можете вызвать базовый URI в например, лучший способ получить ваш корневой ресурс.