我正在尝试在 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 来获取您的根资源。