nginx 转发版本化的部分 uri api

nginx forward partial uri for versioned api

是否有可用于重定向部分 uri 的变量?我有

location /api/v1/ {
    proxy_pass...;
}

location /api/ {
    return 302 /api/v1/$request_uri;
}

但是,如果我像 /api/user 这样调用 url,它会重定向到 /api/v1/api/user。如何重定向到 /api/v1/user?是否有一个变量 returns 与 url 的位置被剥离?我尝试了 $uri$document_uri,但没有成功。

试试这个。

rewrite ^/api/((?!v1/).*)$ /api/v1/ redirect;

location /api/v1/ {
    proxy_pass...;
}