重写回源参数

如果用户发起的原始请求URL中携带的参数与需要发送给源站的参数不一致,您可以通过回源参数重写功能重写回源请求URL中携带的参数。实现忽略所有参数、添加参数、删除参数、保留参数、修改参数等操作。

背景信息

  • URL参数是追加在URL上的一个或多个名称/值对,参数位于?后面,并采用name=value的格式。如果 URL中存在多个参数,则参数之间用一个&隔开。

  • 有时URL中还会包含#,以及#后面的字符,#代表网页中的一个位置,其右边的字符就是该位置的标识符。#用于指引浏览器的定位动作(对服务器端无用,因而回源请求中无需关注该信息),浏览器读取#及其后面的字符之后,会自动定位至该区域。例如:http://www.example.com/index.html#segment,这里的#segment代表网页index.htmlsegment位置,浏览器打开URL对应的页面之后,将会自动定位至该位置。改写参数图

参数优先级

  • 回源参数重写,重写的是回源请求URL的查询参数,支持配置多个不同的重写操作,优先级为添加参数>删除参数>仅保留修改参数。当不同的重写操作用于同一个参数时,只有高优先级的规则会生效。

  • 开启忽略所有参数的情况下,在剩余的重写操作里面,仅添加参数还会生效。

冲突说明

重写回源参数重写回源URLenhance break规则和忽略参数功能可能会冲突,配置时注意避免,且后配置的功能生效。

对缓存key的影响

  • 重写回源参数功能是在CDN回源节点上完成,不影响CDN的内部链路,且不重写缓存key。

  • 忽略参数功能是在CDN边缘节点上完成,会影响CDN的内部链路,且会重写缓存key。

操作步骤

  1. 登录CDN控制台

  2. 在左侧导航栏,单击域名管理

  3. 域名管理页面,找到目标域名,单击操作列的管理

  4. 在指定域名的左侧导航栏,单击回源配置

  5. 单击重写回源参数页签。

  6. 打开功能开关开关。

  7. 配置需要重写的回源参数。

    根据实际业务需求,按照界面提示配置不同的重写操作,您也可以在一种操作类型的文本框中添加多个参数。更多信息,请参见配置示例

  8. 单击确定,重写操作开始执行和生效。

    您也可以在重写回源参数页面,单击修改配置,修改已配置的规则。

    image

配置示例

  • 配置示例一:忽略所有参数。

    image

    配置项

    填写示例

    忽略参数

    开启

    添加参数

    删除参数

    仅保留

    修改参数

    规则条件

    不使用

    结果说明

    原始请求:http://example.com/index.html?code1=1&code2=2&code3=3

    重写后的回源请求:http://example.com/index.html

  • 配置示例二:保留指定参数。

    image

    配置项

    填写示例

    忽略参数

    开启

    添加参数

    删除参数

    仅保留

    code2

    修改参数

    规则条件

    不使用

    结果说明

    原始请求:http://example.com/index.html?code1=1&code2=2&code3=3

    重写后的回源请求:http://example.com/index.html?code2=2

  • 配置示例三:添加参数+删除参数+修改参数。

    image

    配置项

    填写示例

    忽略参数

    开启

    添加参数

    code4=4

    删除参数

    code2

    仅保留

    修改参数

    code3=0

    规则条件

    不使用

    结果说明

    原始请求:http://example.com/index.html?code1=1&code2=2&code3=3

    重写后的回源请求:http://example.com/index.html?code4=4