You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache HTTPS请求DELETE方法返回405错误,HTTP正常求助

解决Apache HTTPS下DELETE请求返回405 Method Not Allowed的问题

从你的错误日志AH01623: client method denied by server configuration: 'DELETE'可以明确,是Apache的配置在HTTPS环境下限制了DELETE方法,而HTTP环境的配置没有这个限制,所以才会出现两种协议下的差异。结合你的Apache 2.4 + DirectAdmin环境,给你一步步排查方案:

1. 检查HTTPS虚拟主机的AllowMethods配置

Apache的HTTP和HTTPS是独立的虚拟主机配置段,DirectAdmin生成的SSL配置通常和HTTP配置分开,你需要找到对应域名的HTTPS配置:

  • 可以通过DirectAdmin用户面板,进入「Domain Setup」→ 对应域名的「Modify」查看SSL相关配置文件路径;也能直接通过服务器终端查找:
    • 常见的HTTPS配置文件位置:/usr/local/apache/conf/userdata/ssl/2/[你的用户名]/[你的域名]/下的自定义配置,或是/usr/local/apache/conf/extra/httpd-ssl.conf,也可能在/etc/httpd/conf.d/ssl.conf里包含了虚拟主机配置。
  • 查找配置中是否存在AllowMethods指令:
    • 如果看到类似AllowMethods GET POST HEAD的行,说明DELETE方法被排除在外了,需要修改为AllowMethods GET POST HEAD DELETE
    • 对比HTTP虚拟主机的配置,你会发现HTTP的配置里要么没有AllowMethods,要么已经包含了DELETE

2. 检查网站根目录的.htaccess文件

虽然HTTP下正常,但有可能.htaccess里有针对HTTPS的规则限制了请求方法:

  • 登录服务器,进入/home/------/domains/------.com/private_html/目录,查看.htaccess文件内容
  • 查找是否有AllowMethods指令,或者通过Rewrite规则限制了DELETE方法(比如带有REQUEST_METHOD的RewriteCond)
  • 如果发现相关限制,要么删除限制,要么把DELETE加入允许的方法列表

3. 验证mod_allowmethods模块状态

错误日志里明确提到了allowmethods:error,说明这个模块已经启用,不需要额外开启,但要确保它的配置没有全局限制DELETE方法:

  • 执行httpd -M | grep allowmethods,确认模块已加载
  • 如果全局配置里有AllowMethods,也要确保它没有排除DELETE(不过这种情况会导致HTTP也出问题,所以概率较低)

4. 重启Apache服务

修改完配置后,执行以下命令重启Apache生效:

service httpd restart

完成以上步骤后,再测试HTTPS下的DELETE请求,应该就能正常响应了。

内容的提问来源于stack exchange,提问作者Singha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:54:48