更新时间:2024-07-17 17:19:56
当用户通过CDNetworks的CDN平台获取您的网站内容时,您可以在控制台上进行简单的规则配置,实现根据请求URL的协议,不同的请求内容,不同的请求头甚至用户所在的地理位置等,返回给用户特定的内容。当前,CDNetworks是通过响应特定的状态码和新的请求URL给客户端,由客户端重新发起请求的方式,来实现上面描述的请求URL或者协议改写的场景。
生效范围
目前,CDNetworks支持您在控制台填写URL正则表达式,以URL正则匹配的方式,判断用户请求是否适用于您的改写规则,例如:rewrite/*.(jpg|png|gif)
,表示当请求rewrite
目录下的jpg|png|gif
文件时,都将匹配该规则。
如上图所示,您除了可以配置URL正则表达式作为您创建的这个规则生效范围的基础匹配条件,还可以进一步执行进阶范围配置。您可以在以下几个参数中选择1个或多个作为组合的配置项,与基础的URL正则表格式为且关系,形成该规则最终的生效范围。
参数 | 描述 |
---|---|
UA或例外的UA | 支持正则表达式,空格和TAB转换为\s ;支持同时配置多个UA,每个UA单独一行。 |
国家地区或例外的国家地区 | 支持在CDNetworks提供的国家地区列表中直接搜索选择; 中国大陆区域可以选择到具体省份,或者更大的地理区域,比如华东,西南。 |
请求头或例外的请求头 | 需要输入头部和值,同时值支持填写正则表达式,例如:Range bytes=[0-9]{9,} ;当前单条规则仅支持配置一个请求头。 |
例外的URL(正则) | 该配置项支持正则表达式; 当URL正则匹配中填写的是 rewrite/*.(jpg|png|gif) ,该配置项中填写的是rewrite/*exception*.jpg ,意味着在rewrite 目录下的jpg|png|gif 文件请求将匹配该规则,但含*exception*.jpg 的请求将不适用于该规则 |
上述进阶范围配置中带有例外字眼的配置项,表示非,在基础匹配规则的匹配范围内,排除一些特定情况;每个配置项在单条规则中仅能出现一次,且UA和例外的UA在单个规则中为互斥关系,不能同时出现,国家地区和请求头情况类似,所以最多仅能同时存在4个配置。
改写类型
目前CDNetworks支持您选择协议改写或者URL改写两种改写类型,无论您选择哪种改写类型,都需要选择返回给客户端的响应状态码,目前CDNetworks支持您配置的响应状态码范围:301;302;303;307
,默认的状态码值为302
。
类型一: 协议改写
此处的协议改写,是指节点收到客户端请求时就进行改写,节点缓存和回源时会使用改写后的协议。若仅是节点回源时进行协议改写,请参考回源协议改写配置相关规则。
在该规则中您可以如下图,选择HTTP -> HTTPS
或者HTTPS -> HTTP
的改写。
类型二:URL改写
和协议改写类似,URL改写也是在CDN节点接收到请求时就进行改写,节点缓存和回源时使用改写后的URL。若仅是节点回源时对请求URL的Host和端口进行替换,请参考回源Host和回源端口配置相关规则。
在URL改写类型中,您可以在原路径下填写想要进行改写的请求URL,支持正则表达式或者完整的URL,例如(https://[^/]+)/.*
或者http://domain/browse/index.html?aa=1
;在重定向路径下填写改写后的路径,需要以http://
或者https://
开头。
优先级
您可以选择该规则生效的优先级,从1-10,数字越大匹配和执行的优先级越高。在同一匹配条件下,执行优先级高的规则。
除了通过点击添加按钮进入规则页面进行详细参数的配置外,您还可以在添加按钮右侧点击快捷配置进行协议改写或者URL改写的简单配置。快捷配置中,生效范围将默认为全部请求,响应状态码为302
,其余的配置如协议改写的逻辑,原URL和重定向URL,优先级您均可以自定义。
完成上述配置后,请点击确认,然后选择下一步提交您的配置。为了避免配置影响您的生产环境,我们推荐您先预部署,把配置生效到测试环境中来验证您的配置是否正确。当配置确定无误后,单击直接部署将配置正式生效到线上环境,通常约3-5分钟后,配置将正式生效到线上环境。关于预部署测试的更多细节,请参考教程通过预部署来验证配置是否生效。
示例一:对匹配URL正则表达式和UA、国家地区字段的请求进行协议改写
关联该规则的域名,当请求匹配了图中的URL正则表达式,同时UA头部为Mozilla/4.0
且用户国家地区为日本;韩国
,CDN节点将缓存并返回给客户端改写后的协议下的URL,例如: http://domain/rewrite/example.jpg
请求将返回https://domain/rewrite/example.jpg
,同时响应状态码为303
,客户端将对返回的新协议的URL发起新请求。
示例二:对匹配URL正则表达式和UA、国家地区字段的请求,特定URL进行改写
关联该规则的域名,当请求匹配了图中的URL正则表达式,同时UA头部为Mozilla/4.0
且用户国家地区为日本;韩国
,并在配置的原路径的规则匹配范围内,CDN节点将缓存并返回给客户端改写后的URL,例如: https://domain/rewrite/urltype1.jpg
请求将返回https://domain/target/urltype1.jpg
,同时响应状态码为302
,客户端将对返回的URL发起新请求。
因为节点缓存和回源使用的是改写后的URL,因此改写后的域名需是在CDNetworks CDN平台上加速的域名。
协议改写类型当前单个域名只允许配置一条规则,主要是为了避免一条请求同时命中HTTP—>HTTPS
和HTTPS—>HTTP
可能导致的循环问题。如要配置多条协议改写,请联系技术支持配置。