Nginx location 使用正则表达式来捕获变量部分

3 min read

使用正则表达式来捕获变量部分可以通过在location块中使用~~*操作符实现。例如,要捕获URL中的变量部分,可以在location块中使用~操作符,如下所示:

location ~ /path/(?<variable>\w+)/ {
  ...
}

在上面的示例中,将匹配所有以/path/开头,后面跟着一个或多个字母数字字符的URL。捕获的变量部分将存储在$variable变量中,可以在其他指令中使用。

如果要忽略大小写,在正则表达式前加上~*操作符:

location ~* /path/(?<variable>\w+)/ {
  ...
}

这将匹配大小写不敏感的URL。

注意:正则表达式的语法可能因为NGINX版本和配置环境的不同而有所差异,请根据自己的实际情况进行调整。