URL改写

更新时间:2022-04-27 16:53:33

功能介绍

URL改写,支持CDN在接受到客户端请求时进行改写,支持重定向改写和CDN内部改写。CDN缓存及回源,默认使用的是改写后的URL。
网宿URL改写支持3种配置模式:

  1. 协议改写:无需配置待改写的URL,只需选择要改写的协议。
  2. 完整URL/正则:自定义配置待改写的URL,支持输入完整的URL或正则表达式。
  3. 组合生成正则:自定义配置待改写URL的请求协议,问号前的URI,及要匹配的问号参数,自动组合成待改写的URL的正则表达式。

操作步骤

  1. 登录网宿CDN控制台,选择域名所在的产品线。

  2. 选择域名,单击配置修改。

  3. 在自助配置界面选择:HTTP协议优化-URL改写,单击修改。

  4. 配置模式一: 协议改写
    如下图所示,URL改写-协议改写,是节点收到客户端请求时就进行改写, 节点缓存或者回源时会使用改写后的URL。 若仅是节点回源时进行协议改写,请到“回源协议改写(新)”中配置回源协议改写。
    网宿科技徐明微:液冷技术迎来井喷期

    配置步骤:

    1) 配置生效范围:具体类型。此处提供4种生效范围供选择:
    网宿科技徐明微:液冷技术迎来井喷期

参数 描述
指定常用类型 可选项有全部文件首页
  • 全部文件:指针对该域名下的所有请求都会生效此功能。
  • 首页:表示仅针对http://domain/或https://domain/这种根目录格式的请求会生效此功能。
文件类型 可选择常用类型或自定义文件类型,多个文件类型之间以英文分号分隔。例如:ace;aac。表示此配置对此类文件类型均会生效
指定URI 可以设定针对URI的请求生效此功能。
不以“http://”或“https://”开头,仅配置URL中的URI部分;多条换行分隔。例如:完整URL为:http://www.test.com/browse/index.html,则配置内容为:/browse/index.html。
【指定URI填写模式】:具体类型选择指定URI后,可以根据指定URI填写模式选择精准匹配还是忽略参数匹配
目录 可以设定仅部分目录下的请求生效此功能。目录必须以“/”开头和结尾,由字母、数字及部分特殊符号(包含下划线、减号、百分号、点)任意组合;多个目录换行分隔。
例如:/file1/123/和/file2/1%1/表示http://加速域名/file1/123/和http://加速域名/file2/1%1/两个目录及目录下所有文件。

2) 配置功能参数
网宿科技徐明微:液冷技术迎来井喷期

参数说明

参数 描述 示例
协议改写 HTTP—>HTTPS;HTTPS—>HTTP HTTP—>HTTPS
改写模式 客户端重定向模式: CDN将改写后的URL重定向给客户端,由客户端重新发起请求,需配置“重定向状态码”;CDN内部改写模式:不会进行重定向,CDN直接返回改写后的文件给客户端。 客户端重定向模式+302
请求头(非必配) 输入请求头,若要匹配值,则输入请求头:值。表示携带此请求头的URL才会生效此规则。为空表示不匹配请求头。 Accept-Encoding: gzip
忽略大小写(非必配) 默认忽略大小写,若选择否,则表示http://www.abc.com/a.jpg和http://www.abc.com/A.jpg为不同的文件,严格匹配大小写的URL才会生效规则。
优先级 若一条请求同时命中多条改写规则,则优先级高的生效 10
  1. 配置模式二: 完整URL/正则
    网宿科技徐明微:液冷技术迎来井喷期
    参数说明

    参数 描述 示例
    待重写URL 有两种输入方式:以http/https开头的完整URL,例如:http://www.test.com/browse/index.html?aa=1;以http/https开头的正则表达式,例如(https://[^/]+)/.* http://www.test.com/browse/index.html?aa=1
    目标URL 有两种输入方式:以http/https开头的完整URL,例如:http://www.test.com/browse/index.html?bb=1;正则表达式,例如$1/zh-cn,$1表示待重写URL中第一个括号的内容。 http://www.test.com/browse/index.html?bb=1
    改写模式 客户端重定向模式: CDN将改写后的URL重定向给客户端,由客户端重新发起请求,需配置“重定向状态码”;CDN内部改写模式:不会进行重定向,CDN直接返回改写后的文件给客户端。 客户端重定向模式+302
    请求头(非必配) 输入请求头,若要匹配值,则输入请求头:值。表示携带此请求头的URL才会生效此规则。为空表示不匹配请求头。 Accept-Encoding: gzip
    忽略大小写(非必配) 默认忽略大小写,若选择否,则表示http://www.abc.com/a.jpg和http://www.abc.com/A.jpg为不同的文件,严格匹配大小写的URL才会生效规则。
    优先级 若一条请求同时命中多条改写规则,则优先级高的生效 10
  2. 配置模式三: 组合生成正则
    若要带特定问号参数的URL才进行改写,则可以使用这个功能。(也可以使用模式二:完整URL/正则,客户自行输入正则。 使用模式三的好处是平台自动生成正则)
    配置待改写的URL的组成部分:
    网宿科技徐明微:液冷技术迎来井喷期

  1. 指定URI:配置待改写的URI,不以“http://”或“https://”开头,不包含域名和问号参数,例如用户请求为http://www.test.com/browse/index.html时要进行改写。则此处需填写为/browse/index.html。
  2. 协议头: 配置哪些协议的URL要进行改写。
  3. 是否匹配问号参数:
    • 如果选择否,则只要同时满足 “指定URI”和“协议头”条件的URL就会进行改写。
    • 如果选择是,则需要在“问号参数”中填写参数,则同时满足“指定URI”,“协议头”和“问号参数”条件的URL就会进行改写。

例如:
网宿科技徐明微:液冷技术迎来井喷期
红框中的3个要素,为改写生效的条件,即:URI为http://domain/browse/index.html且携带问号参数包含key1和key2且key1在key2前面的的URL会被改写。
则:

  1. http://domain/browse/index.html?key1=1  不会被改写,因为未携带key2
  2. http://domain/browse/index.html?key2=1&key1=1  不会被改写,因为key1和key2的顺序不对
  3. http://domain/browse/test/index.html?key1=1&key2=2  不会被改写,因为URI部分不匹配
  4. http://domain/browse/index.html?key1=1&key2=2  改写为http://domain/test2/zh-cn
    http://domain/browse/index.html?key1=1&key3=3&key2=2 改写为http://domain/test2/zh-cn

注意事项

  1. 因为节点缓存和回源使用的是改写后的URL,因此改写后的域名需是网宿加速的域名。
  2. “协议改写”:只能配置一条规则。 主要是为了避免一条请求同时命中HTTP—>HTTPS和HTTPS HTTP,可能导致的循环问题。 如要配置多条协议改写,请联系技术支持配置。
  3. “完整URL/正则”和“组合生成正则”:在控制台上新增的规则,其改写类型默认为:改写类型:只改写一次(防盗链前), 表示命中此改写规则的URL,仅会进行此次改写,不会再匹配其他同样为“只改写一次”的规则, 同时,此改写规则在防盗链校验前生效,即,先做改写,后做防盗链校验。
    网宿科技徐明微:液冷技术迎来井喷期
  4. 一条请求同时命中两条“只改写一次”的规则,则只会有一条规则生效,优先级高的生效。 如需配置一条请求进行多次改写,或先做防盗链校验再做改写,请联系技术支持测试和配置。
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!