本文介绍了为ALB监听配置域名和路径转发规则,以及转发动作配置重写和重定向路径增强规则的详细方法。
转发条件的域名配置规则
域名配置规则支持精准域名、通配符域名和正则表达式域名。关于如何添加转发规则,请参见添加转发规则。
| 域名配置规则 | 说明 | 
| 精准匹配及通配符 | 
 | 
| 正则匹配 | 
 | 
转发条件的路径配置规则
路径配置规则支持精准路径、通配符路径和正则表达式路径。关于如何添加转发规则,请参见添加转发规则。
| 路径配置规则 | 说明 | 
| 精准匹配及通配符 | 
 | 
| 正则匹配 | 
 | 
重写和重定向中路径的增强配置规则
转发条件的路径配置正则表达式后,转发动作中的重写和重定向的路径支持正则表达式替换。关于如何添加转发规则,请参见添加转发规则。
转发条件的路径正则配置规则,请参见转发条件的路径配置规则。
- 注意事项 - 转发条件中正则表达式中包含的半角圆括号 - ( )需要与转发动作中重写或重定向路径中$变量的个数保持一致。
- 转发动作中重写或重定向的路径中需要包含 - ${1}、- ${2}、- ${3}中的一个或多个,且这三个变量不支持使用其他字符代替。
 
- 替换原理 - 路径匹配:客户端发送请求,并匹配到某一条路径转发规则的正则表达式。 
- 提取与替换:按照正则表达式的规范提取,将前三个半角圆括号 - ( )提取出来的内容分别保存至- ${1}、- ${2}、- ${3}中,用于在转发动作的重写或重定向路径中替换。
- 拼接:按照转发动作中重写或重定向路径的配置,对其中的 - ${1}、- ${2}、- ${3}进行值的替换,最终拼接成重写或重定向的实际路径。
 - 编号 - 步骤 - 示例 - 1 - 配置转发规则中的转发条件和转发动作。 - 转发条件路径: - /sys/(.*)/(.*)/aaa
- 转发动作重写或重定向路径: - /${1}/${2}
 - 2 - 客户端发送请求,并匹配路径。 - 客户端发送的请求路径: - /sys/ccc/bbb/aaa
- 匹配到的转发条件路径: - /sys/(.*)/(.*)/aaa
 - 3 - 提取与替换 - 按照正则表达式规范,转发条件路径中的两个 - (.*)分别提取到- ccc和- bbb,并分别保留至转发动作中重写或重定向路径中的${1}和${2}。- ${1}替换为- ccc
- ${2}替换为- bbb
 - 4 - 拼接路径 - 后端服务器接收到的路径: - /ccc/bbb
- 配置示例 - 您可以根据注意事项和替换原理,在控制台上添加转发规则。 - 示例1:转发动作为重写和转发至 - 以路径 - sys/ccc/bbb/aaa被请求转发并重写为- /ccc/bbb为例,转发规则配置示例如下: - 类别 - 说明 - 如果以下条件全部匹配 - 路径正则匹配 - 匹配说明 - 请求的路径和设定的路径根据正则表达式匹配。 
- 输入条件 - 只允许包含大小写英文字母、数字和 - .-_/=?~^*$:()[]+|这些特殊字符 。
- 示例 - 请求的路径: - /sys/ccc/bbb/aaa- 区分大小写:正则匹配输入 - /sys/(.*)/(.*)/aaa时,路径匹配成功。
- 不区分大小写:正则匹配输入 - /sys/(.*)/(.*)/aaa,路径匹配成功。
 
 - 转发动作 - 重写 - 域名: - ${host}
- 路径: - /${1}/${2}
- 查询: - ${query}
 说明- 查询的内容指URL中问号后面的部分。 - 示例:URL为 - www.example.com/test/test1?x=1,查询的内容为- x=1。- 转发至 - 在服务器组列表中选择目标服务器组。 - 示例2:转发动作为重定向 - 以路径 - sys/ccc/bbb/aaa被请求转发并重定向为- /ccc/bbb为例,转发规则配置示例如下: - 类别 - 说明 - 如果以下条件全部匹配 - 路径正则匹配 - 匹配说明 - 请求的路径和设定的路径根据正则表达式匹配。 
- 输入条件 - 只允许包含大小写英文字母、数字和 - .-_/=?~^*$:()[]+|这些特殊字符 。
- 示例 - 请求的路径: - /sys/ccc/bbb/aaa- 区分大小写:正则匹配输入 - /sys/(.*)/(.*)/aaa时,路径匹配成功。
- 不区分大小写:正则匹配输入 - /sys/(.*)/(.*)/aaa,路径匹配成功。
 
 - 转发动作 - 重定向 - 协议: - $protocol
- 域名: - ${host}
- 端口: - ${port}
- 路径: - /${1}/${2}
- 查询: - ${query}
- 状态码: - 301
 
常见问题
如何在ALB中配置转发规则以去除路径中的特定前缀并支持多层路径匹配?
在使用ALB时,如需配置转发规则将特定域名和路径的请求进行处理,以去除特定路径前缀并支持匹配后续多层路径,您可以参考以下示例进行配置:
示例:ALB转发 www.example.com/api/aaa/bbb/...的访问请求时,需要在路径中去除 /api 部分,同时支持匹配 /api 后的多层路径。
您可以使用重写或重定向方式,在配置路径时,使用正则匹配/api/(.*),以匹配所有以/api开头的路径,然后转发动作配置路径为/${1},表示替换/api后面的所有路径。具体配置如下:
- 重写  
- 重定向  
相关文档
如果您需要为ALB监听配置其他监听转发规则,请参见配置监听转发规则。