The location from nginx conf:

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

How to I get variables from location in nginx?

3 Answers 3


The regex works pretty much like in every other place that has it.

location ~/photos/resize/(\d+)/(\d+) {
  # use $1 for the first \d+ and $2 for the second, and so on.

Looking at examples on the nginx wiki may also help, http://wiki.nginx.org/Configuration


In addition to the previous answers, you can also set the names of the regex captured groups so they would easier to be referred later;

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

see NGINX: check whether $remote_user equals to the first part of the location for an example of usage.

  • This is apparently necessary, if there's also another nested location with another regex and regex capture groups. Because inside that other location, $1 $2 $3 etc will refer to values from the nested regex, overwriting the $1 $2 ... in the outer regex. An alias /$1 in the outer regex, will use the $1 from the inner regex, which likely results in file-not-found.
    – KajMagnus
    Apr 15, 2018 at 8:46
  • 2
    I think you can just write (?<width>\d+) instead of (?<width>(\d+)), or is there some other reason for this -- perhaps to also get $1 as well as $width ? May 2, 2018 at 18:05

You may try this:

location ~ ^/photos/resize/.+ {
    rewrite ^/photos/resize/(\d+)/(\d+) /my_resize_script.php?w=$1&h=$2 last;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.