nginxの場所から変数を取得するにはどうすればよいですか?


12

nginx confからの場所:

location ~/photos/resize/(\d+)/(\d+) {
    # Here var1=(\d+), var2=(\d+)
}

nginxの場所から変数を取得するにはどうすればよいですか?

回答:



11

前の回答に加えて、正規表現でキャプチャされたグループの名前を設定して、後で参照しやすくすることもできます。

location ~/photos/resize/(?<width>(\d+))/(?<height>(\d+)) {
  # so here you can use the $width and the $height variables
}

NGINXを参照してください使用例については、$ remote_userが場所の最初の部分に等しいかどうかを確認してください


これは、別の正規表現および正規表現キャプチャグループを持つ別のネストされた場所もある場合、明らかに必要です。他の場所$1 $2 $3などでは、ネストされた正規表現の値を参照$1 $2 ...し、外側の正規表現の値を上書きするためです。alias /$1、外正規表現、使用されます$1から、内側にある可能性の高い結果ファイルが-見つからない正規表現、。
-KajMagnus

1
私はあなただけ書くことができると思う(?<width>\d+)の代わりに(?<width>(\d+))、またはこれに他のいくつかの理由がある-おそらくも取得する$1ようにも$width
キャメロンカー

2

これを試すことができます:

location ~ ^/photos/resize/.+ {
    rewrite ^/photos/resize/(\d+)/(\d+) /my_resize_script.php?w=$1&h=$2 last;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.