Nginx Map 不插入变量

Nginx Map 不插入变量

我正在尝试在 Nginx 的指令中加入一个变量和一个字符串map,但目前还没有成功。这个想法是,任何请求都/press/some-variable-text应该重定向到/magazine/some-variable-text

map $uri $new_uri {
    ~^/press/(?<press_id>.+)$ /magazine/$press_id;
}

输出结果为以下字符串“/杂志/$press_id“(它不会插入变量)。当我删除前缀时/magazine/,变量内容就会正常呈现。

有办法实现这个吗?

答案1

我假设你使用的是 nginx 1.10 或更早版本。你尝试的变量插值在 1.10 上对我来说不起作用,而在更改日志我找到了以下与 map 指令相关的条目:

nginx 1.11.0 的变化

  • 特点:“map”指令支持多个变量的组合作为结果值。

相关内容