使用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>
相关推荐
один but you2 小时前
从可变参数到 emplace:现代 C++ 性能优化的核心组合
java·开发语言
MY_TEUCK3 小时前
【Java 后端 | Nacos 注册中心】微服务治理原理、选型与注册发现实战
java·开发语言·微服务
不正经的小寒3 小时前
PHP 8.4 核心特性
php
测试员周周3 小时前
【Appium 系列】第13节-混合测试执行器 — API + UI 的协同执行
开发语言·人工智能·python·功能测试·ui·appium·pytest
光泽雨3 小时前
c#中的Type类型
开发语言·前端
见叶之秋3 小时前
C++基础入门指南
开发语言·c++
计算机安禾4 小时前
【c++面向对象编程】第42篇:模板特化与偏特化:为特定类型定制实现
开发语言·c++·算法
qq_401700414 小时前
Qt 项目中使用 QSS 的全面总结
开发语言·qt
玖釉-4 小时前
C++ 中的循环语句详解:while、do...while、for、嵌套循环与循环控制
开发语言·c++·算法
XMYX-04 小时前
37 - Go env 环境变量:配置管理与运行时控制
开发语言·golang