Re: Писать в лог доступ к определенным ссылкам

Иван nginx на kinetiksoft.com
Пн Фев 22 12:23:26 UTC 2016


В письме от 21 февраля 2016 00:29:35 пользователь IvanMiller написал:
> Любое совпадение.
> 
> http {
> map $request:$http_referer:$uri $confirm {
>         "~^/mail_confirm/:/mydomain-e.com/mail_confirm/:mail_confirm" 1;
>         default 0;
>    }

Уточните, пожалуйста, ЛЮБОЕ совпадение подаразумевает ИЛИ, Вы же пишете 
конструкцию для И.

То есть логи будут писаться, если 
$request ~ ^/mail_confirm/ И $http_referer ~ /mydomain-e.com/mail_confirm/ И 
$uri ~ mail_confirm.

Попробуйте заменить
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;
}

> 
>     server {
> 

>         if (!-e $request_filename) {
>               rewrite ^ /index.php last;
>         }

Здесь и ниже if лучше заменить на 
try_files $uri /index.php

>         location /refac {
>             if (!-e $request_filename) {
>                 rewrite ^ /refac/index.php last;
>             }
>         }


Подробная информация о списке рассылки nginx-ru