Nginx重写未传递查询字符串

时间:2018-12-21 12:05:25

标签: nginx url-rewriting querystringparameter

我有一个RESTAPI Web应用程序,其api端点如

  

/ api / 1 / help?user =

     

/ api / 1 / test?user =

我的应用程序在https://mytest-web.azurewebsites.net上运行;

我有一个Nginx网关,因此用户可以使用https://mytestapi.com/api/1/help?user=使用api端点,而这些端点将在https://mytest-web.azurewebsites.net/api/1/help?user=上使用

我有两个Nginx重写规则。这两个最终将使用所有查询参数重写为相同的API端点。但是只有一个将所有查询参数转发到我的RESTAPI网站

第一个 工作表,重写后将传递所有查询字符串参数。

 location ~* ^/(api|api2)/ {
    set $myhost $host;
    #add some more extra header for api processing
    add_header x-userlocaction $myhost;
    proxy_set_header x-userlocaction $myhost;
    rewrite ^(.*)$ $1 break;

    add_header X-debug-message "GENERIC API $1"  always;
    proxy_pass https://mytest-web.azurewebsites.net;

}

不起作用 我为供应商进行了另一次Nginx重写。但这并没有传递查询字符串参数。

location /vendorapi/ {
add_header X-debug-message "vendor API SPECIFIC $1"  always;
rewrite ^/vendorapi/(.*)$ /api/$1  break;
proxy_pass https://mytest-web.azurewebsites.net;

}

我必须让供应商通过

使用API
  

/ vendorapi / 1 / help?user =

第二个重写规则有什么问题?

为什么不传递查询字符串参数?

第一个与第二个有何不同?

0 个答案:

没有答案