как получить параметр запроса в lua или nginx?

Я пытаюсь реализовать это - https://gist.github.com/MendelGusmao/2356310 Lua , сокращение URL-адресов на основе nginx. Единственное изменение, которое я хочу реализовать, - это когда какой-либо параметр строки запроса имеет сокращенный URL-адрес, мне нужно взять этот параметр и вставить в длинный URL-адрес.

например http://google.com?test=2 будет выглядеть как http://abc.in/abc при нажатии на http://abc.in/abc?test=3 Меня перенаправляют на - http://google.com?test=3.

Для этого мне нужно взять параметры строки запроса из $request_URI, может ли кто-нибудь помочь с кодом?


person mannuscript    schedule 01.10.2014    source источник
comment
wiki.nginx.org/HttpLuaModule#ngx.req.get_uri_args   -  person Alexey Ten    schedule 01.10.2014


Ответы (3)


Вы должны иметь возможность использовать ngx.var.arg_name, где name — это имя параметра запроса, к которому вы хотите получить доступ. Подробнее об обработке параметров запроса см. в разделе переменные с бесконечными именами в этом руководстве; вы также можете проверить мой сообщение в блоге о Lua nginx/openresty Примеры.

В качестве альтернативы вы можете использовать ngx.req.get_uri_args() для получения всех параметров запроса в виде одной таблицы. Краткое сравнение этих методов см. в этом разделе того же руководства.

person Paul Kulchenko    schedule 01.10.2014

Вы также можете использовать ngx.var.QUERY_STRING для доступа к строке запроса, а также отменить экранирование и проанализировать ее.

person Jerome Anthony    schedule 29.04.2016

Вы можете получить параметр запроса только с помощью nginx, используя $arg_test, test — это имя параметра запроса в этом примере.

Это описано в http://nginx.org/en/docs/http/ngx_http_core_module.html#var_arg_.

person Steve Chavez    schedule 30.05.2018