3

/searchわかりました。呼び出されるたびにパラメータを追加したいだけです。

rewrite ^/search$ /search?foo=bar redirect;

単純なロジックのように見えますが、nginxがパラメーターを個別に取得し、$が機能しなくなったため、無限のループが発生します。/search?foo=barそれはばかげて一致するので、何度も何度もそれをトリガーします。

それで、に触れずに実用的な解決策はあります$argsか?

(マッチングルールはもう少し複雑なので、正規表現を使用したいのですが、基本的には私が望むものです)

4

1 に答える 1

4

nginx wikiによると、「リライトはパラメーターではなくパスでのみ機能します」。

したがって、おそらく重要なのは、パラメータが見つからない場合にのみ書き換えることです。

    if ($args !~ "(^|&)foo=") {
        rewrite ^/search$ /search?foo=bar redirect;
    }
于 2012-06-12T13:43:12.243 に答える