Nginx Map 指令用于多个变量

Nginx Map 指令用于多个变量

我目前将 nginx 与 Magento 一起使用,并使用 map 指令来提供商店代码,如下所示:

map $http_host $magecode {
        www.store.com retail_store;
        wholesale.store.com wholesale_store;
        beta.store.com retail_beta_view;
}

这样做的缺点是,如果我将测试版网站作为自己的商店,我就不能使用相同的目录。相反,我想将测试版网站变成网站代替店铺

是否可以一次映射两个变量?我想象它看起来会像这样:

map $http_host $magecode $magetype {
        www.store.com retail_store website;
        wholesale.store.com wholesale_store website;
        beta.store.com retail_beta_view store;
}

如果不行的话,我可以映射同一个变量两次吗?

map $http_host $magecode { ... }
map $http_host $magetype { ... }

答案1

是的,您可以使用多个map,这似乎是解决这个问题最干净的方法。

map $http_host $magecode {
        www.store.com retail_store;
        wholesale.store.com wholesale_store;
        beta.store.com retail_beta_view;
}

map $http_host $magetype {
        www.store.com website;
        wholesale.store.com website;
        beta.store.com store;
}

相关内容