使用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>
相关推荐
Volunteer Technology1 小时前
架构面试题(一)
开发语言·架构·php
清水白石0081 小时前
Python 对象序列化深度解析:pickle、JSON 与自定义协议的取舍之道
开发语言·python·json
2401_876907522 小时前
Python机器学习实践指南
开发语言·python·机器学习
努力中的编程者2 小时前
栈和队列(C语言底层实现环形队列)
c语言·开发语言
码不停蹄Zzz3 小时前
C语言——神奇的static
java·c语言·开发语言
CoderCodingNo3 小时前
【GESP】C++七级考试大纲知识点梳理, (1) 数学库常用函数
开发语言·c++
老鱼说AI3 小时前
CUDA架构与高性能程序设计:异构数据并行计算
开发语言·c++·人工智能·算法·架构·cuda
子超兄4 小时前
线程池相关问题
java·开发语言
dinl_vin5 小时前
python:常用的基础工具包
开发语言·python
2301_793804695 小时前
C++中的适配器模式变体
开发语言·c++·算法