Данная строка изымается 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