根据查询参数从不同位置提供数据

根据查询参数从不同位置提供数据

我想使用 Nginx 根据查询参数从不同的目录在同一台主机上提供数据。

例如https://foo.bar/index.html应从/var/www/foohttps://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;

相关内容