V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
balabalaguguji
V2EX  ›  程序员

这个 URL 怎么写正则匹配?

  •  
  •   balabalaguguji · 296 天前 · 1939 次点击
    这是一个创建于 296 天前的主题,其中的信息可能已经有所发展或是发生改变。

    /?tigstm

    斜杠问号跟着 6 个随机字符,腾讯云的负载均衡不给用{}符号,我直接 ^/?[a-z][a-z][a-z][a-z][a-z][a-z]$ 这么写无法匹配上,而且容易把/主页访问也匹配上来了,我需要精确匹配上面的 URL

    第 1 条附言  ·  296 天前
    知道了,是因为有个问号,这里要认为是 query 参数了,所以无法匹配。需要在 location 里面进一步判断 request_uri
    第 2 条附言  ·  296 天前
    if ($request_uri ~* ^/\?\w\w\w\w\w\w$) {
    return 444;
    }
    12 条回复    2024-01-27 21:48:06 +08:00
    ho121
        1
    ho121  
       296 天前 via Android
    ^/\?[a-z][a-z][a-z][a-z][a-z][a-z]$
    Pylogmon
        2
    Pylogmon  
       296 天前
    ^/\?[a-z][a-z][a-z][a-z][a-z][a-z]$
    xtyuns
        3
    xtyuns  
       296 天前
    ^\/\?[a-z][a-z][a-z][a-z][a-z][a-z]$
    balabalaguguji
        4
    balabalaguguji  
    OP
       296 天前
    @ho121 #1 试过,不行,不知道什么归逻辑,腾讯云的负载均衡器
    balabalaguguji
        5
    balabalaguguji  
    OP
       296 天前
    @xtyuns
    @Pylogmon
    #2 #3 都试过,都是不行,当前只有~^/?能匹配上,但是会把主页/也匹配上
    yjd
        6
    yjd  
       296 天前
    用 6 个“.”
    P233
        7
    P233  
       296 天前
    倒着往前匹配?

    \/\?.+?$
    haodingzan
        8
    haodingzan  
       296 天前
    .*\/\?......
    balabalaguguji
        9
    balabalaguguji  
    OP
       296 天前
    @yjd #6 也是不行,不知道腾讯云这个什么逻辑,怎们都不对,要有一个测试器才好
    Pylogmon
        10
    Pylogmon  
       296 天前
    @balabalaguguji #4
    ~ ^/\?[a-z][a-z][a-z][a-z][a-z][a-z]$
    haodingzan
        11
    haodingzan  
       296 天前
    @haodingzan #8 看了一下文档,似乎要用特定的开头,正则前面加个 ~* 看看?
    转发 URL 匹配规则如下:
    = 开头表示精确匹配。
    ^~ 开头表示 URL 以某个常规字符串开头,不是正则匹配。
    ~开头表示区分大小写的正则匹配。
    ~* 开头表示不区分大小写的正则匹配。
    / 通用匹配,如果没有其它匹配,任何请求都会匹配到。
    xtyuns
        12
    xtyuns  
       296 天前
    @Pylogmon 像这样,在 `~` 后面加个空格
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1057 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:40 · PVG 03:40 · LAX 11:40 · JFK 14:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.