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

Ответить