参考资料

  1. 支持源站控制有效时间 设置教程
  2. 跟随CDN服务 与 跟随源站有什么区别
  3. CDN流量封顶配置详解
  4. 配置浏览器自动本地缓存图片的JavaScript实现方案
  5. 如何配置忽略参数
  6. 什么是HSTS?
  7. 设置请求报头 设置教程
  8. Gzip压缩详解

详细讲解CDN:重写规则

详细讲解CDN:重写规则

CDN(内容 Delivery Network)中的重写规则用于确定客户端请求应路由到哪个服务器。重写规则一般由匹配规则、目标URL、转发方式、匹配条件、是否保留URL参数和是否终止往下匹配等部分组成。

匹配规则

  1. 匹配规则

    • 解释:匹配路径 /post/ 后的任意字符(. 表示任意字符,+ 表示一个或多个字符),并捕获括号内的内容到变量 1 中。

    • 示例匹配:/post/posts 捕获的内容为 posts,存储在变量 1 中。

    • 注意:拼接时需要显式使用拼接符号 .,如 $1

    • 匹配规则用于确定请求应被转发到哪个目标URL。通常使用正则表达式来定义。

    • 例如:/post/(.+)

目标URL

  1. 目标URL

    • 解释:使用之前定义的变量 1 替换拼接中的位置占位符,拼接完整的URL。

    • 示例拼接:变量 1 的值为 posts,拼接后成为 /post/posts.html

    • 目标URL用于指定请求应转发到哪个URL。

    • 例如:/post/${1}.html

转发方式

  1. 转发方式

    • 隐式:转发后客户端不会显示重写后的URL,服务器直接返回内容。

    • 显式:转发后客户端会显示重写后的URL,并且内容显示为该URL。

匹配条件

  1. 匹配条件

    • 当转发方式为隐式且目标URL的主机名不同时,可在此处修改代理主机名。

    • 示例用途:修改来自代理服务器接收到的域名,例如服务器返回 200 OK 但来自 example.com,而客户端请求来自 prod.example.com,需修改为 prod.example.com

    • 代理主机名(例如:example.com):指定需代理的主机名,仅在转发方式为隐式时使用。

是否保留URL参数

  1. 是否保留URL参数

    • 选中此选项,目标URL将包含用户输入的URL中的参数部分。

    • 示例:输入URL为 /post?param=1,目标URL会拼接为 /post?param=1

是否终止往下匹配

  1. 是否终止往下匹配

    • 选中此选项,一旦匹配成功,将不再处理后续规则,避免重复匹配。

    • 示例:如果多个规则都匹配请求,选中此选项后,只会使用第一条匹配的规则,后续的规则将被跳过。

启用当前重写规则

  1. 启用当前重写规则

    • 确保所有希望使用的重写规则都被启用。

    • 具体操作:前往CDN管理平台,进入规则配置,勾选需启用的规则。

示例配置

  • 匹配规则/post/(.+)

  • 目标URL/post/${1}.html

  • 转发方式:显式

  • 是否终止往下匹配:不终止

  • 代理主机名:不启用

  • 是否保留URL参数:不保留

注意事项

  • 正则表达式的语法必须正确,确保匹配规则能够准确捕获所需内容。

  • 注意拼接符号的使用,引用变量时需使用拼接符号(如 $1)。

  • 根据CDN平台的特定要求,可能需要进行额外配置或调整。

通过合理配置这些选项,可以实现高效的URL重写,确保客户端获得最佳内容体验。