ПРОЕКТЫ 


  АРХИВ 


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: Вложенныедирективы илиобъединениеусловий


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Вложенныедирективы илиобъединениеусловий
  • From: Andrey Ignatov <andr.pl@xxxxxxxxx>
  • Date: Wed, 16 Apr 2008 16:28:43 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:subject:message-id:references:mime-version:content-type:content-disposition:content-transfer-encoding:in-reply-to:user-agent:x-useless-header; bh=6kBJl44GfU2FtcOCD0k98YC2q7ufG8TBaAUHeW+9bzg=; b=s634poE8hQ7IooXNPLHQTmHSbwUFC85DZRHvT5VnIKpe3mMaxE0VF3MupWCY4iAORvBrS7feMsxEhpyN7Wst1Jb+O4ctEXVBMublEIziJovfblBi6F6jvwHR2L8KcxI1b80ML5PyJ/c1aZQ+LMFAh1WfsEU88ow+Q0bBtzVlVfA=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:subject:message-id:references:mime-version:content-type:content-disposition:content-transfer-encoding:in-reply-to:user-agent:x-useless-header; b=Jphi9JKDJ1Pe1Q/p4naS2PgjU9gCZUGoFIi/Fd+mFpXt/hxigF4B1ggbEiqSwJkEbBrRAo6C6olCMKl11rNksWS3U6Ux7UTXH3/e/bz/Lnt3SxlbKjDg51GtwQzMrrQnFEIHXEc5bjw/ziirOHtsZ0CBOzh4y7s1bHwKullvZmc=
  • In-reply-to: <loom.20080416T115122-968@xxxxxxxxxxxxxx>
  • References: <loom.20080416T115122-968@xxxxxxxxxxxxxx>

On Wed, Apr 16, 2008 at 11:57:17AM +0000, Larry Gingras wrote:
> Переписываю очень сложную и навороченную конфигурацию apache под nginx (для 
> реализации связки nginx+apache).
> И вот например мне нужно тут в одной штуке нужно проверить несколько условий. 
> В 
> apache я просто писал несколько RewriteCond подряд. Тут в одном if несколько 
> условий поставить нельзя. И, как оказалось, вложенные if не поддерживаются 
> тоже.
> Так что же делать в таком случае?
> Вот один из примеров, который не знаю как расписать правильно:
> if ($request_uri ~* \.(jpg|gif|wmv|flv)$) {
>       if ($request_uri !~ ^/webmasters/) {
>               if($invalid_referer) {
>                       return 403;
>               }
>       }
> }

Можно попробовать что-нибудь в таком духе:

if ($request_uri ~* \.(jpg|gif|wmv|flv)$) {
        set $i  "a";
}

if ($request_uri !~ ^/webmasters/) {
        set $i  "a$i"
}

if ($invalid_referer) {
        set $i  "a$i"
}

if ($i = "aaa") {
        return 403;
}

Не красиво, но др. вариантов не знаю.


-- 
Andrey Ignatov
Skript, System administrator



 




Copyright © Lexa Software, 1996-2009.