错误码重定向

更新时间:
复制 MD 格式

当 HTTP 请求返回特定的错误状态码时,可通过配置错误码重定向规则,自动将请求重定向到自定义 URL,用以向访问者展示品牌化的错误页面或将流量引导至维护公告页。

概述

在站点运维过程中,经常需要应对以下场景:

  • 自定义 404 品牌页面:当用户访问不存在的资源时,展示带有自有品牌设计和导航的 404 页面,而非默认的错误提示。

  • 维护公告引导:在系统维护期间,将 503 等服务器错误重定向至维护公告页,告知用户预计恢复时间。

  • 错误处理服务对接:将 5xx 服务端错误重定向到专门的错误处理页面,便于统一展示故障信息和联系方式。

边缘安全加速 ESA的错误码重定向功能可以在源站或边缘节点返回指定 HTTP 错误状态码时,通过 302 重定向将请求跳转到配置的自定义 URL。通过错误码重定向,可以:

  • 展示自有品牌设计和内容的错误页面,提升用户体验

  • 将错误响应重定向到自定义页面、维护通知或错误处理服务

  • 使用自定义匹配表达式将规则应用于特定流量

工作原理

当访问者请求触发了已配置的错误状态码时,ESA执行以下操作:

  1. 请求回源访问源站服务器。

  2. 如果响应状态码与已启用规则中配置的错误码匹配,系统将拦截该响应。

  3. 系统返回 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:// 开头。

  • 错误码重定向规则与请求重定向规则共享同一配额。页面显示的配额为两种规则类型的合计上限。

  • 规则按从上到下的顺序匹配。第一个匹配的规则生效,后续规则不再匹配。

  • 每条规则中每个状态码只能出现一次。

操作步骤

  1. ESA控制台选择站点管理,在站点列单击目标站点。

  2. 在左侧导航栏,选择规则 > 重定向规则

  3. 选择错误码重定向页签,单击新增规则

  4. 新增错误码重定向规则页面,填写以下配置项后单击确定

    • 规则名称:自定义规则名,如my-rule

    • 传入请求类型:设置要匹配的用户请求特征,如主机名 等于 www.example.com

      也可以直接编辑表达式,如 (http.host eq "www.example.com")
    • 错误码重定向:单击添加添加错误码映射。对于每个条目:

      • 错误码:从下拉列表中选择 HTTP 状态码

      • 重定向地址:输入要重定向到的完整 URL。URL 必须以 http://https:// 开头。示例:https://www.example.com/error-pages/404.html

验证规则

创建规则后,可以通过以下步骤验证规则是否按预期工作:

  1. 使用 curl 命令发送测试请求,触发已配置的错误状态码。例如,请求一个不存在的资源以触发 404 错误:

    curl -I http://www.example.com/nonexistent-page
  2. 检查响应。预期返回 302 状态码,且 Location 头指向配置的自定义 URL:

    HTTP/1.1 302 Found
    Location: https://www.example.com/error-pages/404.html        
  3. 跟随重定向,确认自定义错误页面正常加载:

    curl -vL http://www.example.com/nonexistent-page           

常见问题

规则对源站错误还是边缘节点错误生效?

规则仅针对源站服务器返回的错误码生效。

如果多条规则匹配同一请求会怎样?

规则按从上到下的顺序匹配。第一条匹配的规则生效,评估随即终止。请将更具体的规则排在通用规则之前。

错误码重定向规则与请求重定向规则是否共享配额?

是。两种规则共享同一重定向规则配额。重定向规则页面显示的配额反映了两种规则类型的合计数量。