ПРОЕКТЫ 


  АРХИВ 


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[2]: rewrite на основе $args



Здравствуйте, Olexander.

>> для некоторых локейшнов надо делать rewrite, основываясь на аргументах
>> запроса. 
>> насколько приемлема такая конструкция:
>> 
>> location / {
>>   if ($request_uri = '/some/uri?a1=v1&a2=v2') {
>>     rewrite ^ /foo.gif;
>>   }
>> 
>>   if ($request_uri = '/one/more/uri?a3=v3&a4=v4') {
>>     rewrite ^ /boo.gif;
>>   }
>>  .................
>> }
>> 
>> с учетом того, что неоднократно говорилось, что if -- не всегда самая 
>> красивая
>> и оптимальная конструкция, можно ли сделать то же самое более идеологически
>> правильным способом?

OS> location /some/uri {
OS>     rewrite ^ /foo.gif;
OS> }

OS> location /one/more/uri {
OS>    rewrite ^ /boo.gif;
OS> }
 
Выделение  в  отдельные локейшны безусловно верная мысль. Это позволит
исключить проверку тех if-ом, которые относятся к другим путям.

Но  спрашивалось  про  учёт  аргументов  запроса... Поэтому ИМХО стоит
создать  отдельные  локейшны,  как  описано  выше  и  в  них поместить
исходные if-ы. Будет работать быстрее.

--

С уважением,
Михаил Монашёв, SoftSearch.ru
mailto:postmaster@xxxxxxxxxxxxx
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.




 




Copyright © Lexa Software, 1996-2009.