nginx 简单的正则表达式位置

The*_*nja 10 nginx regex regular-expressions

如果 url 的前 5 位数字是数字,我需要在 nginx 中设置一个位置参数。

site.com/12345/ or site.com/12345
Run Code Online (Sandbox Code Playgroud)

但我似乎一辈子都无法得到正确的正则表达式。

这些都不起作用。

location ^/([0-9]) { }
location ^/(\d\d\d\d\d) {}
location /(\d\d\d\d\d) {}
Run Code Online (Sandbox Code Playgroud)

cad*_*dmi 16

尝试这个

location ~ "^/[\d]{5}" {
    # ...
}
Run Code Online (Sandbox Code Playgroud)

~ 表示正则表达式位置

^ 表示行的开头

[\d] 是字符类匹配数字的简写

{5} 显示数字必须正好是五,不多也不少

()括号是没有必要的,如果你不想再使用分组,$ 1,例如

双引号,因为正则表达式中使用的大括号必须用双引号括起来:https ://stackoverflow.com/questions/14684463/curly-braces-and-from-apache-to-nginx-rewrite-rules


0xB*_*00D 7

试试这个语法(在我的服务器上测试过):

location ~ ^/([0-9]+) {
  #...
}
Run Code Online (Sandbox Code Playgroud)