Служить данные из разных мест в зависимости от параметра запроса

Я хотел бы обслуживать данные на одном и том же хосте из разных каталогов в зависимости от параметра запроса, используя Nginx.

Например https://foo.bar/index.html должно быть подано с /var/www/foo а также https://foo.bar/index.html?baz=quux от /var/www/bar,

Я пытался изменить сервер root условно, но оказывается, что это не поддерживается.

root /var/www/foo;    
if ($args ~ baz=quux) {
    # this is not gonna work but that is what is needed
    # root /var/www/bar;
}

1 ответ

Я не уверен, что это самый элегантный способ решения проблемы, но использование переменной в root Директива работает как положено.

set $env 'foo';
if ($arg_baz=quux) {
    set $env 'bar';
}
root /var/www/$env;
Другие вопросы по тегам