ПРОЕКТЫ 


  АРХИВ 


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: random_index



On Thu, Nov 03, 2011 at 08:31:04PM +0400, Maxim Dounin wrote:
> Hello!
> 
> On Thu, Nov 03, 2011 at 07:28:05PM +0300, ola wrote:
> 
> > Здравствуйте, Nginx-ru.
> > 
> > Помогите, пожалуйста, разобраться с random_index.
> > 
> > server {
> >     listen      127.0.0.1:80;
> >     server_name localhost;
> >     error_log   logs/error.log debug;
> > 
> >     location / {
> >         root   /common/example.org/www;
> >         index  index.html;
> >     }
> > 
> >     location ~ ^/banner(\d+)/$ {
> >         alias /common/example.org/adv/$1/;
> >         random_index on;
> >     }
> > }
> > 
> > При  запросе  /banner2/ получается 404-я ошибка, nginx пытается отдать
> > файл /common/example.org/www/banner2/1.html
> > 
> > Если  использовать  location ~ ^/banner(\d+)/ {} (без завершающего $),
> > то  nginx  делает  10 внутренних редиректов и "Redirection limit of 10
> > URL's reached"
> 
> Если в директиве alias используются переменные, то она задаёт 
> полный путь к файлу, который надо использовать.

Это неверно.  Наличие в значении alias переменных не приводит
к такому эффекту.  Правильно написано в документации, а именно:
если alias указана внутри location, заданного регулярным
выражением, то regexp должен содержать captures, и alias должна
на них ссылаться.  В любом случае значение директивы alias заменяет
значение директивы location целиком, будь то regexp или префикс.

> Должно сработать как-то так:
> 
>     location ~ ^/banner(?<number>\d+)/(?<file>.*) {
>         alias /common/example.org/adv/$number/$file;
>         random_index on;
>     }


-- 
Ruslan Ermilov

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


 




Copyright © Lexa Software, 1996-2009.