a newbie question regarding regex in nginx conf

Maxim Dounin mdounin at mdounin.ru
Wed Sep 3 19:58:35 MSD 2008


Hello!

On Wed, Sep 03, 2008 at 11:33:15PM +0800, Zhang Yining wrote:

>Hi list,
>
>I have a question regarding regex in nginx conf, and believe it must
>have been brought up before, yet after googling for it, I could not find
>an answer.
>
>Specifically, is it possible to use curly braces in nginx conf?
>
>For example, for some url like: /photos/123456
>
>I would want to rewrite it to: /path/to/photos/12/1234/123456.png
>
>in apache's conf rewrite rule, I could use something like:
>
>[0-9]{2}[0-9]{2}[0-9]{2}  /path/to/photos/$1/$1$2/$1$2$3.png
>
>But it seems curly braces are reserved for nginx conf file's own use,
>and not recognized by the regex processing.
>
>So is there any way to use curly braces in regex? If so, could some one
>kind enough to provide a link or short explanation of how to do it?

Just quote the regex, i.e:

rewrite  "([0-9]{2})([0-9]{2})([0-9]{2})"  /path/to/photos/$1/$1$2/$1$2$3.png;

(single quotes will do the trick too).

It's documented in 
http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#rewrite 
(in russian), but not (yet) in english wiki.  Feel free to update 
http://wiki.codemongers.com/NginxHttpRewriteModule#rewrite.

Maxim Dounin





More information about the nginx mailing list