AWS应用程序负载均衡器-转义路径模式字符



我在EKS中部署了一个AWS ALB入口控制器,k8s创建了一个AWS-ALB并创建了一些规则来转发流量:

正如文件所说:

https://docs.aws.amazon.com//elasticloadbalancing/latest/application/load-balancer-listeners.html

路径条件

您可以使用路径条件来定义基于请求中的URL路由请求的规则(也称为基于路径的路由(。路径模式仅应用于URL的路径,而不应用于其查询参数。路径模式区分大小写,长度最多可达128个字符,并且可以包含以下任何字符。

A–Z、A–Z、0–9

_-.$/~"'@:+

&(使用&(

*。(匹配0个或更多字符(

(正好匹配1个字符(


我有两个规则

1. IF Path is /api/* THEN Forward to XXX
2. IF Path is /* THEN Forward to YYY

我的网络应用程序中的URL是:

1. example.com/api/users/1 Forward to XXX [200 - OK]
2. example.com/signin Forward to YYY [200 - OK]
3. example.com/login-user returns 404 (the hyphen is recognized as a pattern)

预期:将请求3转发到YYY 的规则

我试过这个:

IF Path is /* THEN Forward to YYY

运气不好,在文档中什么都没说,所以我如何才能转义连字符将请求3转发给YYY?

PD:我有大约50个带连字符的uri,我不想重写它们。

有点破解,但请在规则中尝试/login?user/*

问号应与连字符匹配。当然,它会匹配任何字符,但这确实不应该影响你的url解析,除非你的url路径中有一些奇怪的冲突,例如/loginuser或其他什么。

最新更新