web-dev-qa-db-ja.com

nginx構成ファイルで、「$」記号を含むfastcgi_paramを定義する方法は?

PHPアプリケーションに対していくつかの環境変数を定義しようとしていますが、これらの変数の1つに「$」記号が含まれています。nginx -t、変数が存在しないというエラーメッセージが表示されます。 "$"の後のテキストを変数名として解釈しているようですが、これはもちろん定義されていません。

たぶん私は正しい場所で検索しませんでしたが、「$」文字をエスケープする方法についての情報を見つけることができませんでした。それは可能ですか?それをどのように行うことができますか?

更新:d3ag0sのコメントに続いて、値を一重引用符と二重引用符で囲みましたが、同じエラーメッセージが表示されました。

5
kant312

このページによると、$記号をエスケープすることはできませんが、回避策を提供します。

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";
    }
}

それは最善の解決策ではないかもしれませんが、私はそれをテストし、それが機能します。

4
kant312