当 HTTP 请求返回特定的错误状态码时,可通过配置错误码重定向规则,自动将请求重定向到自定义 URL,用以向访问者展示品牌化的错误页面或将流量引导至维护公告页。
概述
在站点运维过程中,经常需要应对以下场景:
自定义 404 品牌页面:当用户访问不存在的资源时,展示带有自有品牌设计和导航的 404 页面,而非默认的错误提示。
维护公告引导:在系统维护期间,将 503 等服务器错误重定向至维护公告页,告知用户预计恢复时间。
错误处理服务对接:将 5xx 服务端错误重定向到专门的错误处理页面,便于统一展示故障信息和联系方式。
边缘安全加速 ESA的错误码重定向功能可以在源站或边缘节点返回指定 HTTP 错误状态码时,通过 302 重定向将请求跳转到配置的自定义 URL。通过错误码重定向,可以:
展示自有品牌设计和内容的错误页面,提升用户体验
将错误响应重定向到自定义页面、维护通知或错误处理服务
使用自定义匹配表达式将规则应用于特定流量
工作原理
当访问者请求触发了已配置的错误状态码时,ESA执行以下操作:
请求回源访问源站服务器。
如果响应状态码与已启用规则中配置的错误码匹配,系统将拦截该响应。
系统返回 302 重定向到规则中指定的 URL。
支持的错误码
错误码重定向支持以下 HTTP 状态码:
状态码 | 描述 |
400 | 错误请求(Bad Request) |
403 | 禁止访问(Forbidden) |
404 | 未找到(Not Found) |
405 | 方法不允许(Method Not Allowed) |
414 | URI 过长(URI Too Long) |
416 | 请求范围不满足(Range Not Satisfiable) |
500 | 服务器内部错误(Internal Server Error) |
501 | 未实现(Not Implemented) |
502 | 网关错误(Bad Gateway) |
503 | 服务不可用(Service Unavailable) |
504 | 网关超时(Gateway Timeout) |
使用限制
每条规则最多可配置 11 个错误码重定向条目,每个支持的状态码对应一个条目。
重定向 URL 必须是完整的 URL,以
http://或https://开头。错误码重定向规则与请求重定向规则共享同一配额。页面显示的配额为两种规则类型的合计上限。
规则按从上到下的顺序匹配。第一个匹配的规则生效,后续规则不再匹配。
每条规则中每个状态码只能出现一次。
操作步骤
在ESA控制台选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择。
选择错误码重定向页签,单击新增规则。
在新增错误码重定向规则页面,填写以下配置项后单击确定:
验证规则
创建规则后,可以通过以下步骤验证规则是否按预期工作:
使用 curl 命令发送测试请求,触发已配置的错误状态码。例如,请求一个不存在的资源以触发 404 错误:
curl -I http://www.example.com/nonexistent-page检查响应。预期返回 302 状态码,且
Location头指向配置的自定义 URL:HTTP/1.1 302 Found Location: https://www.example.com/error-pages/404.html跟随重定向,确认自定义错误页面正常加载:
curl -vL http://www.example.com/nonexistent-page
常见问题
规则对源站错误还是边缘节点错误生效?
规则仅针对源站服务器返回的错误码生效。
如果多条规则匹配同一请求会怎样?
规则按从上到下的顺序匹配。第一条匹配的规则生效,评估随即终止。请将更具体的规则排在通用规则之前。
错误码重定向规则与请求重定向规则是否共享配额?
是。两种规则共享同一重定向规则配额。重定向规则页面显示的配额反映了两种规则类型的合计数量。