Nginx 无法捕获正则表达式变量

Nginx 无法捕获正则表达式变量

尝试捕获类似 http://mydomain/1234567890123 (13 位数字)的 URL

        location ~ ^/([\d]{13})$ {
            proxy_pass http://127.0.0.1:4000/product?id=$1;
    }

即使捕获了 URL,$1 变量也为空。我遗漏了什么?

PS 也尝试了命名变量。没有帮助。

答案1

使用地图从工作配置中提取:

map $uri $maptest {
    "~^(?<folder1>.*?)/?(\?.*)?$" page-cache$folder1/1.html;
}

server {
        location /node_direct/ {
          proxy_pass http://nodeServers/$maptest;
        }
}

相关内容