> Данная строка изымается nginx'ом из бд посредством модуля ngx_postgres > исходя из того, что вернет как раз-таки та самая первая регулярка. Далее > ее нужно раздробить на 3 части и если $протокол = http://, то > спроксировать на $домен, если конечный сайт в подпапке - добавить $путь > к $request_uri, если же $протокол = https:// - тогда просто сделать > редирект.
Если я ничего не путаю, то после того как вы сделали запрос к базе, nginx возвращает результат и сам с ним уже никак не взаимодействует. Здесь я вижу несколько вариантов решения: 1. каким то чудом после обращения к базе, что бы плагин выставлял дополнительные заголовки, например X-Query-Url: http(s)://test.local/(site([1-9])), и второй X-Accel-Redirect: ( а здесь указание на location nginx который будет парсить заголовок X-Query-Url и делать нужные действия) 2. использовать perl модуль и работу с БД вести внутри него. 3. наиболее адекватный, на мой взгляд, это написать легкий backend скрипт который будет делать всю работу. 26.06.2013, 08:21, "ad...@sysadmins.el.kg" <ad...@sysadmins.el.kg>: > Благодарю за помощь с первой регуляркой - это как раз то, что доктор > прописал. А вот во втором случае встроенными переменными не обойтись, > поскольку указанный мной url > > http(s)://test.local/(site([1-9])) > > не является переданным от клиента (иначе проблемы №2 не было бы вообще). > Данная строка изымается nginx'ом из бд посредством модуля ngx_postgres > исходя из того, что вернет как раз-таки та самая первая регулярка. Далее > ее нужно раздробить на 3 части и если $протокол = http://, то > спроксировать на $домен, если конечный сайт в подпапке - добавить $путь > к $request_uri, если же $протокол = https:// - тогда просто сделать > редирект. Вот как-то так у меня задача поставлена. > > 25.06.2013 17:53, Kron пишет: >> 1. >> >> map $request_uri $num { >> "~*/pages/Test/(?<n>\d+)" $n; >> } >> >> 2. >> >> http://nginx.org/ru/docs/http/ngx_http_core_module.html >> читать про "встроенные переменные" >> >> 25.06.2013, 11:31, "ad...@sysadmins.el.kg" <ad...@sysadmins.el.kg>: >>> Доброго всем! >>> >>> Помогите плз с регулярками для map'ов. >>> >>> Имеется строка типа: >>> >>> https://www.facebook.com/pages/Test/123456789123456?sk=app_987654321987654 >>> которая приходит как реферал. Нужно получить из нее первый блок цифр - >>> "123456789123456". >>> >>> Также имеется строка http(s)://test.local/(site([1-9])) которую мне >>> нужно разбить на 3 части - протокол, домен, uri. То есть получить >>> отдельно "http(s)://", "test.local" и "/(site([1-9]))". >>> >>> Только что-то я не совсем понимаю как их составлять... :-[ >>> >>> _______________________________________________ >>> 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 > _______________________________________________ > 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