本文档介绍火山引擎内容分发网络(CDN)中的 "自定义拦截" 功能。
该功能使您可以对用户请求中的路径、请求中的查询参数、请求来自的的客户端 IP 地址设置匹配条件,并对符合匹配条件的请求设置 CDN 处理这些请求的方式。
功能优先级
CDN 提供的一系列访问控制功能有不同的优先级。在 CDN 处理用户请求时,这些功能按优先级对请求生效。参见 访问控制功能的优先级。
操作步骤
- 登录 火山引擎内容分发网络控制台。
- 在左侧导航栏,点击 域名管理。
- 在 域名管理 页面,找到需要配置的域名,点击 管理。
- 定位 自定义拦截规则 模块。
- 如果您使用的是旧版域名管理页面,点击 编辑配置,然后在 访问控制 标签页中定位 自定义拦截规则 模块。
- 如果您使用的是新版域名管理页面,点击 编辑域名。在页面左侧的树状配置项列表中,定位 功能配置 > 访问控制 > 自定义拦截规则。如果该模块置灰,点击模块右边的 + 。
关于新旧版域名管理页面的区别,参见 新版域名配置。
- 在 自定义拦截规则 模块中,设置 状态 为启用。
- 点击 新增规则。您最多可以创建 10 条规则。
- 在 编辑规则 页面,根据 配置说明 进行设置。
- 设置完成后, 点击 提交编辑。

配置说明
配置 | 说明 |
|---|
规则名称 | 表示规则的名称。 |
生效对象 | 表示一个或者多个匹配条件,用于对请求进行匹配。点击 添加 创建一个匹配条件,您最多可以创建 5 个匹配条件。如果您不添加任何匹配条件,表示所有请求都匹配这条规则。 在每个匹配条件中,您需要设置匹配对象、匹配类型和匹配值。匹配值可以是多个。多个匹配值之间的关系是 "或"。 - 如果 匹配类型 是 客户端 UA,多个匹配值之间以竖线(
- 如果 匹配类型 不是 客户端 UA,多个匹配值之间以分号(;)分隔。
匹配类型的说明如下: - 文件全路径:表示请求 URL 中的路径。
- 文件目录:表示路径中的某个目录。
- 文件后缀:表示路径末尾的扩展名。
- 全路径正则:表示请求 URL 中的路径,通过正则表达式匹配。
- 请求 FullQuery:表示请求 URL 中的查询字符串。
- 请求 Query:表示请求 URL 中的某个查询参数。
- 客户端 IP:表示客户端的 IP 地址。
- 客户端 UA:表示请求中 User-Agent 头部。
- 自定义请求头部:表示请求中的某个头部。
如果匹配类型是 全路径正则 或 请求 FullQuery,匹配值是正则表达式。要使用这两个匹配类型,请 提交工单。 关于对比类型,需要留意的是: - 等于、匹配:表示如果请求匹配任意匹配值,该请求就符合匹配条件。
- 不等于、不匹配 :表示如果请求不匹配所有匹配值,该请求才符合匹配条件。
- 属于/属于全局名单:仅适用于 请求 Query,表示一个类型是 "通用列表" 的全局配置。"通用列表" 用来定义大量匹配值。要指定该对比类型,请 提交工单。
|
拦截方式 | 表示 CDN 如何处理符合匹配条件的请求。该配置的可选值有: - 4xx 错误:表示 CDN 响应一个 4xx 的错误码。
- 重定向:表示 CDN 将请求重定向到另一个 URL。
如果您计划创建多条规则,每条规则中的 拦截方式 必须相同。 |
当 拦截方式 为 4xx 错误 时,您可以设置以下额外配置:
配置 | 说明 |
|---|
响应状态码 | 表示 CDN 在拒绝该请求时的响应状态码。您需要设置一个 400-499 范围内的错误码,例如 405。 |
响应 Body | 表示响应正文中的内容。该配置有以下选项: - 系统默认:表示 CDN 使用 4xx 错误码的标准响应正文。
- 自定义:表示 CDN 使用一个自定义响应页面。您可以在 响应页面 下拉列表中选择一个自定义页面。下拉列表中的页面来自 全局配置 页面下的 自定义响应页面 标签页。要创建自定义响应页面,请 提交工单。
|
拦截方式 为 重定向 时,您可以设置以下额外配置:
配置 | 说明 |
|---|
响应状态码 | 表示 CDN 对满足匹配条件的请求的响应状态码。您可以设置 301 或者 302。 |
Location | 表示一个重定向 URL。 |
规则优先级
规则列表中的规则具有优先级,优先级最高的规则优先生效。对于一个用户请求,如果某条规则与该请求匹配,只有该规则生效,剩余规则不生效。您可以拖动规则来调整规则的优先级。
更多信息
配置输入要求
配置 | 输入要求 |
|---|
规则名称 | 长度不超过 20 个字符,可以包含字母、数字、下划线(_)、连字符(-)、汉字。一个汉字占 3 个字符。 |
生效对象 | 生效对象中,匹配值的输入要求如下: - 路径必须以斜杠(/)开头,可以包含通配符 *,但不能仅仅是 *。例如:
/www/img/my*image.png。 - 文件目录必须以斜杠(/)开头和结尾。例如:
/www/img/。 - 文件后缀不能以句点(.)开头。例如:
png;txt。 - 当匹配类型是 文件全路径、文件目录、文件后缀 时,匹配值的总长度不能超过 1,024 个字符,且不能包含以下字符:
- 双斜杠(//)、空格、美元符号($)、问号(?)。
- 当匹配类型是 请求 Query 时,查询参数名称和参数值有以下要求:
- 每个匹配条件中只能指定一个参数名称和一个参数值。
- 长度不能超过 256 个字符。
- 参数名称可以包含数字、字母、句点(.)、下划线(_)、中划线(-)。
- 参数值可以包含数字、字母、百分号(%)、下划线(_)、中划线(-)。
- 当匹配类型是 客户端 IP 时,IP 地址的输入要求如下:
- 总长度不能超过 30,000 个字符。
- 数量不能超过 50 个。
- 只能是 IPv4 地址,支持输入 CIDR 地址块。
- 不能是
0.0.0.0/0。要表示所有 IP 地址,请输入 0.0.0.0/1;128.0.0.0/1。
- 当匹配类型是 自定义头部 或 客户端 UA 时,头部值的输入要求如下:
- 总长度不能超过 1,024 个字符。
- 数量不能超过 50 个。
- 可以以通配符 * 开头和结尾,但不能仅仅是 *。
- 当匹配类型是 全路径正则 或 请求 FullQuery 时,正则表达式的总长度不能超过 1,024 个字符。
|
Location | URL 必须以 http:// 或 https:// 开头,长度不能超过 1,024 个字符。 |