nginx - 匹配位置与分组

时间:2015-11-09 22:16:41

标签: regex nginx

我正在尝试匹配nginx正则表达式,但是,我无法让它工作。

假设我有一个网址localhost:8880,并且我希望通过某个位置匹配它,例如,如果我输入something.com/url,并且它连接到localhost:8880,这很容易够:

location /url {
    proxy_pass http://localhost:8880/;
    }

但问题是,我还希望将/url后的过去包含在localhost:8880中,例如,如果用户输入/url/url_gen/,则会传递给localhost:8880/url_gen {1}},它还应包含任何参数,例如?param1=num&param_2=num2

我试图想出这样的东西:

location ~* /url/(\s+)$ {
    proxy_pass http://localhost:8880/$1;
    }
  1. 〜*表示不区分大小写
  2. (\ s +)$表示任何非空白字符
  3. 然后在localhost,我将我从(\ s +)获得的组添加到$ 1。
  4. 我已经尝试过搜索nginx正则表达式教程,这就是我能够实现的目标。

    然而,它似乎没有用,有人能指出我正确的方向吗?

    由于

1 个答案:

答案 0 :(得分:1)

反向代理已经考虑了指定预加之后的内容,如documentation中所述:

location /some/path/ {
     proxy_pass http://www.example.com/link/;
}
     

[...]

     

请注意,在上面的第一个示例中,代理的地址   服务器后跟一个URI,/ link /。如果指定了URI   使用该地址,它将替换匹配的请求URI部分   位置参数。例如,这里的请求与   /some/path/page.html将代理URI   http://www.example.com/link/page.html