проблемы с {} в регулярных выражениях

Andrey deepmindster at gmail.com
Sat Sep 16 13:47:27 MSD 2006


Доброго времени суток.

Встретился с проблемой. Если ставить {} в регулярном выражении, то nginx
-t говорит, что rewrite не закончился ;

Например, пример ниже работать не будет. Синтаксис файла некорретен.
(Видимо, потому, что { встречается раньше чем ; ).

location ^~ /directory/jsnews/ {
    rewrite ^/directory/jsnews/([\d]{1,2})$  /js/$1 break;
}

Следующий пример тоже не работатет, синтаксис верный, но регулярное
выражение срабатывает так, будто там стоит \{ в регулярном выражении.
Т.е. срабатывает на выражение, например(не регулярное, просто
URI), /directory/jsnews/5{1,2} .

location ^~ /directory/jsnews/ {
    rewrite ^/directory/jsnews/([\d]\{1,2\})$  /js/$1 break;
}

Пример ниже рабоатет верно.
location ^~ /directory/jsnews/ {
    rewrite ^/directory/jsnews/([\d]|[\d][\d])$  /js/$1 break;
}

Существует ли способ указать фигурные скобки в регулярном выражении
rewrite или это ошибка? Или моя ошибка?
В документации описани я не шашёл (может, пропустил?).

nginx 0.4.0

С уважением,
Андрей.







More information about the nginx-ru mailing list