重定向规则

如果源站资源的存放路径发生变化,而用户请求的URL保持不变,您可以通过在边缘安全加速 ESA节点上配置重定向规则来匹配源站路径,将用户请求的URL重定向至目标URL,从而减少回源请求,提高客户端访问性能。

功能介绍

image

重定向规则的详细说明如下:

  1. ESA节点上配置重定向规则后,用户通过客户端发起资源访问请求。

  2. ESA节点向客户端返回重定向状态码(例如:301302),并在HTTP响应头中携带目标URL。

  3. 客户端在收到该响应后,直接向ESA节点的Location信息中新的URL地址发起请求,完成资源访问。

ESA支持的重定向状态码及典型应用场景

状态码

含义

处理方法

典型应用场景

301

永久重定向(Moved Permanently)

GET方法不变,其他方法可能变更为GET。

请求资源已永久移动到由Location头部指定的新URL,搜索引擎会更新链接。

302

临时重定向(Found)

GET方法不变,其他方法可能变更为 GET。

页面暂时不可用,搜索引擎不会更新链接。

303

临时重定向(See Other)

GET方法不变,其他方法会强制变更为GET(消息主体丢失)。

用于PUTPOST请求完成后的页面跳转,避免页面刷新导致重复操作。

307

临时重定向(Temporary Redirect)

方法和消息主体都不变。

页面暂时不可用,当站点支持非GET方法的链接或操作时,该状态码优于302状态码。

308

永久重定向(Permanent Redirect)

方法和消息主体都不变。

永久迁移资源,强制客户端保留原始请求方法和请求体,适用于网站重构或API迁移等需要保持语义一致性的场景。

操作步骤

新增重定向规则后,当用户发起资源访问请求时,ESA将根据规则的生效优先级依次进行匹配与执行,并返回相应的结果。

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

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

  3. 单击新增规则,填写规则名称

  4. 如果请求匹配以下规则...区域设置要匹配的用户请求特征,具体配置规则请参见规则表达式的组成

  5. 单一重定向区域,选择重定向类型静态,写入具体URL,选择状态码

    image

    参数

    类型

    说明

    类型

    静态

    当您需要重定向到固定URL时,请选择静态,并将目标URL设置为固定字符串,例如:URL填写https://test.example.com/image/1.jpg?test=123

    动态

    当您需要动态修改原URL时,请选择动态,并将目标URL设置为一个表达式,例如:表达式填写concat("https://www.example.com", http.request.uri.path),表示将用户请求URL中的主机名替换为一个新的域名,URL中的路径保持不变。

    状态码

    配置重定向的响应状态码:301(默认)、302、303、307308。详细说明请参考:ESA支持的重定向状态码及典型应用场景

    保留查询字符串

    是否携带原查询参数至目标URL,默认关闭,即重定向后不携带原请求的查询参数。

    开启保留查询字符串后:

    • 如果用户请求的URL中携带了查询字符串,则覆盖重定向URL中的查询字符串。

    • 如果用户请求的URL中没有携带查询字符串,则使用重定向URL中的查询字符串。

    详细配置示例请见:配置示例

  6. 单击确定

配置示例

操作类型为静态的示例

配置场景 1

  • 请求是否携带查询字符串:否

  • 重定向URL是否携带查询字符串:是

  • 保留查询字符串配置:开启/关闭

  • 用户请求URL示例:http://test.example.com/1.jpg

  • 配置的重定向URL示例:http://test.example.com/image/1.jpg?test=123

  • 实际重定向Location示例:http://test.example.com/image/1.jpg?test=123

  • 说明:原始请求无查询参数时,无论保留配置是否开启,最终Location均保留配置URL的查询字符串。

配置场景 2

  • 请求是否携带查询字符串:是

  • 重定向URL是否携带查询字符串:是

  • 保留查询字符串配置:开启

  • 用户请求URL示例:http://test.example.com/1.jpg?test=321

  • 配置的重定向URL示例:http://test.example.com/image/1.jpg?test=123

  • 实际重定向Location示例:http://test.example.com/image/1.jpg?test=321

  • 说明:保留配置开启时,仅保留原始请求的查询字符串,忽略配置URL的查询参数。

配置场景 3

  • 请求是否携带查询字符串:是

  • 重定向URL是否携带查询字符串:是

  • 保留查询字符串配置:关闭

  • 用户请求URL示例:http://test.example.com/1.jpg?test=321

  • 配置的重定向URL示例:http://test.example.com/image/1.jpg?test=123

  • 实际重定向Location示例:http://test.example.com/image/1.jpg?test=123

  • 说明:保留配置关闭时,仅保留配置URL的查询字符串,忽略原始请求的查询参数。

配置场景 4

  • 请求是否携带查询字符串:是

  • 重定向URL是否携带查询字符串:否

  • 保留查询字符串配置:开启

  • 用户请求URL示例:http://test.example.com/1.jpg?test=321

  • 配置的重定向URL示例:http://test.example.com/image/1.jpg

  • 实际重定向Location示例:http://test.example.com/image/1.jpg?test=321

  • 说明:保留配置开启时,自动将原始请求的查询字符串附加到配置URL(即使配置URL无查询参数)。

配置场景 5

  • 请求是否携带查询字符串:是

  • 重定向URL是否携带查询字符串:否

  • 保留查询字符串配置:关闭

  • 用户请求URL示例:http://test.example.com/1.jpg?test=321

  • 配置的重定向URL示例:http://test.example.com/image/1.jpg

  • 实际重定向Location示例:http://test.example.com/image/1.jpg

  • 说明:保留配置关闭时,直接丢弃原始请求的查询字符串,仅返回配置URL。

操作类型为动态的示例

配置场景 1

  • 保留查询字符串配置:关闭

  • 用户请求URL示例:https://test.example.com/image/1.jpg?test=123

  • 函数表达式:concat("https://www.example.com", http.request.uri.path)

  • 实际重定向Location示例:https://www.example.com/image/1.jpg

  • 说明:

    • 配置关闭时,仅保留路径部分(/image/1.jpg),忽略原始请求的查询字符串(?test=123)。

    • 函数表达式仅拼接域名和路径,不处理查询参数。

配置场景 2

  • 保留查询字符串配置:开启

  • 用户请求URL示例:https://test.example.com/image/1.jpg?test=123

  • 函数表达式:concat("https://www.example.com", http.request.uri.path)

  • 实际重定向Location示例:https://www.example.com/image/1.jpg?test=123

  • 说明:

    • 配置开启时,自动将原始请求的查询字符串附加到生成的URL(即使函数表达式未显式处理查询参数)。

    • 函数表达式仅处理路径拼接,查询字符串由系统根据配置自动追加。

保留查询字符串配置

用户请求URL示例

函数表达式

实际重定向Location示例

关闭

https://test.example.com/image/1.jpg?test=123

concat("https://www.example.com", http.request.uri.path)

https://www.example.com/image/1.jpg

开启

https://test.example.com/image/1.jpg?test=123

concat("https://www.example.com", http.request.uri.path)

https://www.example.com/image/1.jpg?test=123

不同套餐的支持情况

重定向规则

基础版

标准版

高级版

企业版

支持配置的重定向规则数量

10

25

50

125

相关文档

规则相关的功能,在生效优先级、可重入性、生效颗粒度这三个特性上存在差异,详细情况请查看规则相关功能的特性说明