Nginx переписать не передавая строку запроса
У меня есть веб-приложение RESTAPI с конечными точками API, такими как
/ API / 1 / помочь? Пользователя =
/ API / 1 / тест? Пользователя =
Мое приложение работает на https://mytest-web.azurewebsites.net/;
У меня есть шлюз nginx, поэтому пользователи могут использовать конечные точки API с помощью https://mytestapi.com/api/1/help?user= который будет использоваться по адресу 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/ помощь? Пользователя =
Что не так со вторым правилом перезаписи?
Почему параметры строки запроса не передаются?
Чем первый отличается от второго?