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
|