使用IIS运行php程序,处理put和delete请求出现405错误

原因是虽然请求已进入 PHP 处理程序(PHP_Via_FastCGI),但被 WebDAVModule 模块拦截,导致返回 405。WebDAV 是 IIS 的一个功能模块,默认会处理 PUT 和 DELETE 请求,即使 PHP 允许这些动词,WebDAV 也可能先于 PHP 执行并拒绝请求。

解决方法:

方法一:通过 IIS 管理器禁用
  1. 打开 IIS 管理器,选中您的站点(ThinkPHP)。

  2. 双击 模块 图标。

  3. 在模块列表中找到 WebDAVModule,选中它。

  4. 在右侧操作栏点击 删除

  5. 重启 IIS(运行 iisreset 或右键站点 → 管理网站 → 重新启动)

方法二:修改 web.config 文件(推荐,可保留配置)

在站点根目录的 web.config 中添加以下内容,移除 WebDAV 模块和处理程序:

复制代码
<configuration>
    <system.webServer>
        <modules>
            <remove name="WebDAVModule" />
        </modules>
        <handlers>
            <remove name="WebDAV" />
        </handlers>
    </system.webServer>
</configuration>
相关推荐
人邮异步社区1 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大1 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai2 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜2 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa2 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
一次旅行2 小时前
Python+大模型端到端自动化日报系统
开发语言·python·自动化
噢,我明白了3 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
mabing9934 小时前
Qt 生成条纹图
开发语言·qt
蓝悦无人机4 小时前
C++基础 — 函数总结
开发语言·c++
糖果店的幽灵4 小时前
langgraph的 MessagesState 解读
java·开发语言·人工智能·windows·langgraph