Sergey Shepelev
May 04, 2010 01:56PM
2010/5/4 vgoncharov <nginx-forum@nginx.us>:
> Всем привет!
>
> Использую nginx/0.7.65 как акселератор для бакенда.
>
> Настроил basic-авторизацию в зависимости от содержимого переменной в переменной $args.
>
> Когда параметры передаются методом GET, то все работет как и задумывалось.
>
> Если же те же самые параметры передаются методом POST, то $args пустой. И вся моя авторизация по условию перестает правильно работать.
>
> Как в моделе rewrite смотреть параметры переданные методом POST?
>
> Браузер посылает на nginx такие заголовки:
> Content-Type: application/x-www-form-urlencoded; charset=UTF-8
> Content-Length: 132
>
> И такое тело запроса:
> p=000:00:0080053295408811:FLOW_PPR_OUTPUT_R1440731841612176_pg_R_1449731841612176:NO&pg_max_rows=15&pg_min_row=16&pg_rows_fetched=15
>
> Казалось бы, если $args пустая, то $arg_p могла бы быть и заполненной. Обнако это не так. Как мне быть? Где посмотреть что передали в POST?
>
>
Тут такая штука, что GET аргументы передаются прямо в строке запроса,
а "POST-аргументы" (технически, на уровне HTTP такого понятия нет)
передаются в теле запроса. Которое nginx может, например, писать на
диск и не держать в памяти. Это почему по-умолчанию просто так из
коробки не работает ожидаемое. Но технические причины никому не
интересны.

Правильно будет либо сделать обработчик на перле, либо написать
маленький бекенд на любом приятном вам языке,

либо (это неправильный способ. Серьёзно.) смотреть переменную
$request_body. В ней будет вот та самая полная строка p=000:00...
Никак не разбитая на токены, просто строка и всё. Вы можете написать
хитрый регексп типа
if ($request_body ~ "^p=\d+") { ... }
Но это, повторю, неправильный способ. Хотя он и завлекает простотой.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Как в модуле rewrite смотреть параметры переданные методом POST?

vgoncharov May 04, 2010 10:46AM

Re: Как в модуле rewrite смотреть параметры переданные методом POST?

Daniel Podolsky May 04, 2010 11:18AM

Re: Как в модуле rewrite смотреть параметры переданные методом POST?

vgoncharov May 04, 2010 01:33PM

Re: Как в модуле rewrite смотреть параметры переданные методом POST?

Daniel Podolsky May 04, 2010 02:38PM

Re: Как в модуле rewrite смотреть параметры переданные методом POST?

akalend May 04, 2010 11:26AM

Re: Как в модуле rewrite смотреть параметры переданные методом POST?

Sergey Shepelev May 04, 2010 01:56PM

Re: Как в модуле rewrite смотреть параметры переданные методом POST?

Daniel Podolsky May 04, 2010 02:40PM

Re[2]: Как в модуле rewrite смотреть параметры переданные методом POST?

akalend May 04, 2010 03:58PM

Re: Как в модуле rewrite смотреть параметры переданные методом POST?

vgoncharov May 04, 2010 04:32PM

Re: Как в модуле rewrite смотреть параметры переданные методом POST?

Daniel Podolsky May 04, 2010 05:30PM

Re: Как в модуле rewrite смотреть параметры переданные методом POST?

Gena Makhomed May 05, 2010 02:58AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 87
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready