А если подумать проснувшись, то вариант с map'ом все же рабочий:
map $request_uri $request_uri_noargs { "~(?<uri_noargs>[^\?]+)(\?\.+)?" "$uri_noargs"; } proxy_pass http://127.0.0.1:8080?source=$request_uri_noargs; 4 августа 2017 г., 9:21 пользователь Andrey Istochkin <alstpost...@gmail.com > написал: > Нет, к сожалению, то, что показалось рабочим на первый взгляд, работать не > будет :/ Map не поможет, и передача уже кодированных параметров тоже плохая > идея. > > пятница, 4 августа 2017 г. пользователь Andrey Istochkin написал: > > $uri содержит строку запроса в нормализованном виде(после >> url-декодирования). Попробуйте передавать $request_uri, это исходная >> строка запроса. Она, правда, содержит аргументы, но избавиться от них на >> уровне бэкенда, или даже nginx'а(с помощью map, например), довольно просто. >> >> четверг, 3 августа 2017 г. пользователь vitcool написал: >> >>> за идею спасибо. рабочая. но придется бекенд допилить чтобы сначала читал >>> хидеры, и только потом get параметры. но это лучше чем ничего >>> >>> вопрос правда остался открытым. почему такое поведение? даже эскейпинг >>> (%20 >>> вместо пробелов) не помогает. >>> >>> Posted at Nginx Forum: https://forum.nginx.org/read.p >>> hp?21,275786,275836#msg-275836 >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru@nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >>
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru