Переписываю очень сложную и навороченную конфигурацию 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;
}
}
А папук вебмастер обрабатывать отдельным локейшенем.
Что первое в голову пришло. Правда я не знаю насколько оптимальна будет
подобная конструкция.