nginx.org/r/map/ru
000 0;
значит, что $confirm будет ноль, тогда когда значением строчки
$req_confirm$ref_confirm$uri_confirm будет 0, а во всех остальных случаях,
так как
default 1;
будет единица, что соотвествует логическому ИЛИ.
Вашей ошибкой было то, что map не принимает в качестве первого параметра
произвольную подстроку, лишь одну или более переменных. Ну и разделить
на отдельные map'ы получается понятнее и сложнее ошибиться в регэкспе.
В письме от 24 февраля 2016 01:22:57 пользователь IvanMiller написал:
> Да, мне надо ИЛИ. Ваш вариант сработал, буду тестировать.
> Дайте линк, откуда можно понять все про map.
> что значит 000 0 ? Почему так записывается ?
>
> Иван Wrote:
> -------------------------------------------------------
> > Попробуйте заменить
> > map $request:$http_referer:$uri $confirm {
> >
> > "~^/mail_confirm/:/mydomain-e.com/mail_confirm/:mail_confirm"
> >
> > 1;
> >
> > default 0;
> >
> > }
> >
> > сначала на
> >
> > map $request $req_confirm {
> >
> > ~/mail_confirm/ 1;
> > default 0;
> >
> > }
> > map $http_referer $ref_confirm {
> >
> > ~/mydomain-e.com/mail_confirm/ 1;
> > default 0;
> >
> > }
> > map $uri $uri_confirm {
> >
> > ~mail_confirm 1;
> > default 0;
> >
> > }
> >
> > далее, если Вам таки нужен И, то
> > map $req_confirm$ref_confirm$uri_confirm $confirm {
> >
> > 111 1;
> > default 0;
> >
> > }
> >
> > Если же хотите ИЛИ, то
> > map $req_confirm$ref_confirm$uri_confirm $confirm {
> >
> > default 1;
> > 000 0;
> >
> > }
> >
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru