Azure Front Door合规正则需求:匹配/users/*路径并排除子路径
符合Azure Front Door规范的URL路径正则表达式方案
需求说明
需要匹配仅包含/users/后接单个层级内容的URL路径,即匹配类似/users/alice、/users/bob的路径,同时排除以下情况:
- 末尾带斜杠的路径,如
/users/alice/ - 包含更多层级的路径,如
/users/alice/profile、/users/bob/settings
解决方案
结合Azure Front Door的正则匹配特性(正则表达式无需前置/),可以使用以下正则表达式:
^users/[^/]+$
正则逻辑说明
^users/:匹配以users/开头的路径(遵循Azure Front Door规则,无需前置/)[^/]+:匹配任意非斜杠的字符且至少出现一次,确保是单个层级的内容$:匹配路径结尾,直接排除末尾带斜杠或后续还有层级的情况
补充说明
你之前尝试的两个正则:
^/users/([^/]+?)(?:/)?$
^/users/[^/]+?$
未生效的核心原因是Azure Front Door的正则匹配不需要前置/,去掉开头的/后,原有表达式的逻辑其实是可行的,但^users/[^/]+$是更简洁精准的写法,能完全满足你的需求。
内容的提问来源于stack exchange,提问作者Shanon Jackson
相关产品推荐
相关产品推荐

