2014-10-01 1 views
6

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

например. http://google.com?test=2 будет как http://abc.in/abc при ударе по http://abc.in/abc?test=3 Я получаю перенаправлены на - http://google.com?test=3.

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

+0

http://wiki.nginx.org/HttpLuaModule#ngx.req.get_uri_args –

ответ

14

Вы должны иметь возможность использовать ngx.var.arg_name, где name - это имя параметра запроса, к которому вы хотите получить доступ. См. Variables with Infinite Names section in this tutorial для получения подробной информации о обработке параметров запроса; вы также можете проверить мои blog post для примеров Lua nginx/openresty.

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

5

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