IIS 7.5 启用带有 URL 重写的 DELETE/PUT 动词

IIS 7.5 启用带有 URL 重写的 DELETE/PUT 动词

我正在尝试在 IIS 7.5 上使用 SLIM 框架 (PHP、REST)。我遇到的问题是我需要能够使用 REST URL 并启用 PUT、DELETE http 动词。

我在 github 上借助 SLIM 解决了 REST URL 问题(请参阅下面的 web.config)。但我无法解决使用 URL 重写时激活动词使用的问题。

这是我收到的错误:HTTP 错误 405.0 - 方法不允许。无法显示您要查找的页面,因为使用了无效的方法(HTTP 动词)。

模块 StaticFileModule

通知ExecuteRequestHandler

处理程序静态文件

错误代码 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 来获取您的根资源。

相关内容