Nginx $Request_Uri vs $Uri

How do you determine when to use $request_uri vs $uri?

According to NGINX documentation, $request_uri is the original request (for example, /foo/bar.php?arg=baz includes arguments and can't be modified) but $uri refers to the altered URI.

If the URI doesn't change, does $uri = $request_uri?

Would it be incorrect or better or worse to use:

map $uri $new_uri {
  # do something
}

vs

map $request_uri $new_uri {
  # do something
}

2 Answers

$uri is not equivalent to $request_uri.

The $uri variable is set to the URI that nginx is currently processing - but it is also subject to normalisation, including:

  • Removal of the ? and query string
  • Consecutive / characters are replace by a single /
  • URL encoded characters are decoded

The value of $request_uri is always the original URI and is not subject to any of the above normalisations.

Most of the time you would use $uri, because it is normalised. Using $request_uri in the wrong place can cause URL encoded characters to become doubly encoded.

Use $request_uri in a map directive, if you need to match the URI and its query string.

5

Another difference about $uri and $request_uri in proxy_cache_key is $request_uri will include anchor tags part, but $uri$is_args$args will ignore it

Do a curl operation : curl -I :

proxy_cache_key $scheme://$host$uri$is_args$args; => Cache KEY: 
proxy_cache_key $scheme://$host$request_uri; => Cache KEY: 

Nginx Document:

  • $request_uri : full original request URI (with arguments)
  • $uri: current URI in request, normalized The value of $uri may change during request processing, e.g. when doing internal redirects, or when using index files.

Proxy Cache key:

2

Your Answer

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

Sarah Jenkins

Sarah Jenkins

Senior Technology Editor & AI Specialist

Sarah Jenkins is a veteran tech journalist with over 12 years of experience covering artificial intelligence, mobile innovations, and digital ethics. Her insights have appeared in leading technology publications worldwide.

Share this article
Twitter Facebook Pinterest