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

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

например, http://google.com?test=2 будет как http://abc.in/abc в то время как наезд на http://abc.in/abc?test=3 я перейду на - http://google.com?test=3.

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

3 ответов


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

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


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


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

это задокументировано в http://nginx.org/en/docs/http/ngx_http_core_module.html#var_arg_.