使用NGINX在PHP中使用Restful API。多个地点?

时间:2016-11-15 21:33:56

标签: php rest nginx

我正在尝试让NGINX处理我的所有路由。这不会是一个巨大的REST API,因此只有几个URL可用。

/directory/api/v1/

这将是我的API的基本URL。发送给它的每个请求都应该自动触发为“REST”,如果这有意义的话。

/directory/api/v1/distance/10.95012,-5.192001/5.19288,11.21521

基本上就是其中一个网址的样子。如果我们正在进行重写规则(这是我开始使用的),我会做类似的事情:

location / {
    rewrite ^/directory/api/v1/(.*)/(.*)/(.*) /directory/grab.php?method=$1&from=$2&to$3 last;
}

对于这个例子,这会很有用。我很容易就能用PHP进行真正的检查(例如,如果允许方法distance)。但是,我也想要这样的事情:

/directory/api/v1/currentlocation/123

这样做会“破坏”rewrite ^/directory/api/v1/(.*)/(.*)/(.*),因为正则表达式不匹配。

最好的方法是什么?我无法弄清楚location是如何工作的。做一些像这样的事情会很好:

location ^~ /directory/api/v1/distance/
    #do something like grab.php?method=distance&from=???&to=???
}

0 个答案:

没有答案