Re[2]: rewrite на основе $args

Михаил Монашёв postmaster at softsearch.ru
Tue Jun 23 12:09:34 MSD 2009


Здравствуйте, 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 at softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.






More information about the nginx-ru mailing list