如果用户发起的原始请求URL中携带的参数与需要发送给源站的参数不一致,您可以通过回源参数重写功能重写回源请求URL中携带的参数。实现忽略所有参数、添加参数、删除参数、保留参数、修改参数等操作。
背景信息
URL参数是追加在URL上的一个或多个
名称/值
对,参数位于?
后面,并采用name=value
的格式。如果 URL中存在多个参数,则参数之间用一个&
隔开。有时URL中还会包含
#
,以及#
后面的字符,#
代表网页中的一个位置,其右边的字符就是该位置的标识符。#
用于指引浏览器的定位动作(对服务器端无用,因而回源请求中无需关注该信息),浏览器读取#
及其后面的字符之后,会自动定位至该区域。例如:http://www.example.com/index.html#segment
,这里的#segment
代表网页index.html
的segment
位置,浏览器打开URL对应的页面之后,将会自动定位至该位置。
参数优先级
回源参数重写,重写的是回源请求URL的查询参数,支持配置多个不同的重写操作,优先级为添加参数>删除参数>仅保留>修改参数。当不同的重写操作用于同一个参数时,只有高优先级的规则会生效。
开启忽略所有参数的情况下,在剩余的重写操作里面,仅添加参数还会生效。
冲突说明
重写回源参数与重写回源URL的enhance break
规则和忽略参数功能可能会冲突,配置时注意避免,且后配置的功能生效。
对缓存key的影响
重写回源参数功能是在CDN回源节点上完成,不影响CDN的内部链路,且不重写缓存key。
忽略参数功能是在CDN边缘节点上完成,会影响CDN的内部链路,且会重写缓存key。
操作步骤
配置示例
配置示例一:忽略所有参数。
配置项
填写示例
忽略参数
开启
添加参数
无
删除参数
无
仅保留
无
修改参数
无
规则条件
不使用
结果说明
原始请求:
http://example.com/index.html?code1=1&code2=2&code3=3
重写后的回源请求:
http://example.com/index.html
配置示例二:保留指定参数。
配置项
填写示例
忽略参数
开启
添加参数
无
删除参数
无
仅保留
code2
修改参数
无
规则条件
不使用
结果说明
原始请求:
http://example.com/index.html?code1=1&code2=2&code3=3
重写后的回源请求:
http://example.com/index.html?code2=2
配置示例三:添加参数+删除参数+修改参数。
配置项
填写示例
忽略参数
开启
添加参数
code4=4
删除参数
code2
仅保留
无
修改参数
code3=0
规则条件
不使用
结果说明
原始请求:
http://example.com/index.html?code1=1&code2=2&code3=3
重写后的回源请求:
http://example.com/index.html?code4=4