Nginx正则表达式和通配符的位置

时间:2017-08-31 13:17:34

标签: regex nginx wildcard

我遇到了一个问题。我想要打 http://localhost/api/hello/somename

现在某个名字可能是任何山姆或菲尔,

现在我的nginx配置文件在下面。

server {
    listen 80 default_server;
    server_name _;
    location ~ ^/api/(.*)$ {
    proxy_pass       http://localhost:8081/api/hello/$1;
   }

}

我哪里错了?你能帮我解决一下吗?实际上8081容器正在运行。

2 个答案:

答案 0 :(得分:0)

/应该被转义 .*是什么。如果你知道应该有名字,并且他们之间有/说出来

  ^https?:\/\/\w+\/api(?:\/\w+)*$

httphttps然后:然后//,然后是一个词,然后/api,然后可能是/word

test

答案 1 :(得分:0)

你不需要这么复杂。你可以像下面这样简单

server {
    listen 80 default_server;
    server_name _;
    location /api/ {
    proxy_pass       http://localhost:8081/api/;
   }

}

这应该将以/api开头的任何内容传递给http://localhost:8081/api/,并在/api/后附加请求uri