405 Method Not Allowed 表示服务器认识该请求方法,但目标资源不支持它。响应中必须包含 Allow 响应头,列出该资源支持的方法,例如 Allow: GET, HEAD, OPTIONS。
典型情况包括:向静态文件发送 POST,对只读 API 资源发送 DELETE,或者对只接受表单提交的端点发送 GET。如果服务器根本不认识该方法,则应返回 501 Not Implemented。
405 响应可以被启发式缓存。
响应示例
HTTP
HTTP/1.1 405 Method Not Allowed
Date: Fri, 06 Nov 2026 10:15:32 GMT
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Content-Length: 30
{"error":"method_not_allowed"} SEO 与重定向检测
普通 GET 请求返回 405 属于 4xx 错误,会导致页面无法编入索引。更常见的问题出在其他方法上:有些服务器和框架对 HEAD 返回 405,这会让使用 HEAD 节省带宽的链接检测工具和监控工具产生误判。如果把方法设为 HEAD 检测时返回 405,而 GET 返回 200,说明服务器没有正确处理 HEAD,尽管 HTTP 要求通用服务器必须支持它。
常见原因与使用场景
- 表单或 API 客户端向只提供静态内容的 URL 提交数据;nginx 会用“405 Not Allowed”响应这类请求。
- 框架路由只定义了
GET,因此HEAD、POST或PUT都会被拒绝。 - 重定向保留了请求方法:经过 307 或 308 之后,
POST仍是POST,可能会落到只接受GET的页面上。 - 服务器配置中禁用了 WebDAV 或其他方法。