ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Баг try_files + valid_referers



29.08.2013 18:07, Maxim Dounin пишет:
Hello!

On Thu, Aug 29, 2013 at 04:56:39PM +0300, Андрей Василишин wrote:

29.08.2013 15:00, Maxim Dounin пишет:

Варианты - уйти в другой location и писать отдельный лог там,
писать лог с переменными в имени.


Что-то не могу придумать, как без  if это сделать.

По приведённой в предыдущем письме ссылке написано, как это
сделать, если вы про переход в другой location.

Делать это без if - не обязательно, достаточно обеспечить, чтобы
обработка запроса при попадании в if уходила в другой location
(i.e., использовать if + rewrite ... last или if + return).

http://wiki.nginx.org/IfIsEvil


Спасибо всем за ответы, в общем удалось сделать, то что хотел так:
        error_page 410                  = @invalid;
        error_page 411                  = @a;

        location / {
            index  index.php index.htm index.html;
            root   /var/www/site.com;
            try_files $uri
                $uri/
                /index.php?q=$uri&$args
                @backend;
rewrite "^/([^\/]+/[^\/]+)/((s[\d]+)?(e[\d]+){1}(\-[\d]+)*)$" /$1.html?serie=$2;
                rewrite ([^\/]+/[^\/]+.html)/$ /$1 permanent;
                rewrite (tag/[^\/]+)/$ /$1 permanent;
valid_referers none server_names ~(yandex|google|yahoo|bing|facebook|fbcdn|mail.ru|rambler|nigma|vk.com);
                if ($invalid_referer) {
                         return 410;
                }
                if ($a) {
                         return 411;
                }

        }
        location @a {
                access_log  /var/log/nginx/a.site.com.access.log  main;
                root   /var/www/site.com;
                try_files $uri
                $uri/
                /index.php?q=$uri&$args;
        }
        location @invalid {
                access_log  /var/log/nginx/site.com.invalid.log  main;
                root   /var/www/site.com;
                try_files $uri
                $uri/
                /index.php?q=$uri&$args;
        }

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.