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

Andrey Ignatov andr.pl at gmail.com
Wed Apr 16 16:28:43 MSD 2008


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





More information about the nginx-ru mailing list