在nginx配置文件中,如何定义包含“$”符号的fastcgi_param?

在nginx配置文件中,如何定义包含“$”符号的fastcgi_param?

我正在尝试为 PHP 应用程序定义一些环境变量,但其中一个变量包含“$”符号。当我使用 测试配置文件时nginx -t,我收到一条错误消息,告诉我变量不存在。它似乎将“$”后面的文本解释为变量名,当然这是没有定义的。

也许我搜索的地方不对,但我找不到有关如何转义“$”字符的信息。这可能吗?该怎么做?

更新:我尝试按照 d3ag0s 的评论将值括在单引号和双引号之间,但收到了相同的错误消息。

答案1

根据此页面,无法转义 $ 符号,但它们提供了一种解决方法:

https://openresty.org/download/agentzh-nginx-tutorials-en.html#nginx-variables-escaping-dollar

geo $dollar {
    default "$";
}

server {
    listen 8080;

    location /test {
        echo "This is a dollar sign: $dollar";
    }
}

虽然它可能不是最好的解决方案,但我已经测试过并且有效。

相关内容