我想使用 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;