Вложенныедирективыилиобъединениеусловий

Arthur F. Bier izatop at mail.ru
Wed Apr 16 16:26:23 MSD 2008


Larry Gingras пишет:
> Переписываю очень сложную и навороченную конфигурацию 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 $uri_old $request_uri;
    rewrite .* /checkrule;
}

location /checkrule {
    if ($uri_old !~ ^/webmasters/) {
       return 403;
    }

}

А папук вебмастер обрабатывать отдельным локейшенем.
Что первое в голову пришло. Правда я не знаю насколько оптимальна будет 
подобная конструкция.


More information about the nginx-ru mailing list