URL改写

更新时间:2024-03-28 17:57:14

功能介绍

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种生效范围供选择:
    a) 指定常用类型: 全部文件、首页

    • 全部文件: 表示该域名的所有请求都会协议改写。
    • 首页: 表示仅针对http://domain/或https://domain/这种根目录格式的请求,会进行协议改写。

    b) 指定文件类型。 网宿提供常用的文件类型供选择,也可以自行输入文件类型。匹配该文件类型的请求资源会协议改写。
    c) 指定URI。可以设定仅部分URI的请求资源协议改写。
    d) 指定目录。可以设定仅部分目录下的请求会协议改写。
    数据解读 | 电商狂欢日 安全考验时
    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
  5. 配置模式二: 完整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
  6. 配置模式三: 组合生成正则
    若要带特定问号参数的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. 一条请求同时命中两条“只改写一次”的规则,则只会有一条规则生效,优先级高的生效。 如需配置一条请求进行多次改写,或先做防盗链校验再做改写,请联系技术支持测试和配置。
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!