Introducing the rewrite module
The rewrite
module of NGINX is a simple regular expression matcher combined with a virtual stack machine. The first part of any rewrite rule is a regular expression. As such, it is possible to use parentheses to define certain parts as captures, which can later be referenced by positional variables. A positional variable is one in which its value depends on the order of the capture in the regular expression. They are labeled by number, so positional variable $1
references what is matched by the first set of parentheses, $2
references what is matched by the second set, and so on. For example, refer to the following regular expression:
^/images/([a-z]{2})/([a-z0-9]{5})/(.*)\.(png|jpg|gif)$
The first positional variable, $1
, references a two-letter string, which comes immediately after the /images/
string at the beginning of the URI. The second positional variable, $2
, refers to a five-character string composed of lowercase letters and the numbers from 0 to 9...