Nginx 位置正则表达式捕获变量
Nginx location regex capture variable
我有这个 REST API URL:
http://localhost:4000/api/v2/stocks/accounts/1162/tradings
我想要 proxy_pass 到 URL:
http://localhost:4001/api/v2/stocks/accounts/1162/tradings
其中 1162 是 URL 参数,可以是其他值。
我有以下内容:
location ^~ /api/v2/stocks/accounts/([^/]+)/tradings {
proxy_pass http://localhost:4001/api/v2/stocks/accounts//tradings;
}
但它不起作用(404 Not Found),我用谷歌搜索了类似的问题,但没有太大帮助:
喜欢这个:Get arguments Nginx and path for proxy_pass or this one: trouble with location regex and redirection in nginx。
有什么方法可以使用 nginx 实现我想要的吗?
在此先感谢您的帮助。
已添加:
我还添加了参数捕获:
location ~ /api/v2/stocks/accounts/([^/]+)/tradings/(.*) {
proxy_pass http://localhost:4001/api/v2/stocks/accounts//tradings/$is_args$args;
}
你可以这样做。不是'^~'
location ~ /api/v2/stocks/accounts/([^/]+)/tradings {
proxy_pass http://localhost:4001/api/v2/stocks/accounts//tradings;
}
如nginx.org所述。
^~ 通常匹配 目录 ,如下所示:
location ^~ /dir/ {
# some actions
}
我有这个 REST API URL:
http://localhost:4000/api/v2/stocks/accounts/1162/tradings
我想要 proxy_pass 到 URL:
http://localhost:4001/api/v2/stocks/accounts/1162/tradings
其中 1162 是 URL 参数,可以是其他值。
我有以下内容:
location ^~ /api/v2/stocks/accounts/([^/]+)/tradings {
proxy_pass http://localhost:4001/api/v2/stocks/accounts//tradings;
}
但它不起作用(404 Not Found),我用谷歌搜索了类似的问题,但没有太大帮助:
喜欢这个:Get arguments Nginx and path for proxy_pass or this one: trouble with location regex and redirection in nginx。
有什么方法可以使用 nginx 实现我想要的吗?
在此先感谢您的帮助。
已添加:
我还添加了参数捕获:
location ~ /api/v2/stocks/accounts/([^/]+)/tradings/(.*) {
proxy_pass http://localhost:4001/api/v2/stocks/accounts//tradings/$is_args$args;
}
你可以这样做。不是'^~'
location ~ /api/v2/stocks/accounts/([^/]+)/tradings {
proxy_pass http://localhost:4001/api/v2/stocks/accounts//tradings;
}
如nginx.org所述。
^~ 通常匹配 目录 ,如下所示:
location ^~ /dir/ {
# some actions
}