Регекс локейшены с русскими именами

RedRat nginx-forum на nginx.us
Ср Июл 20 10:41:09 UTC 2011


Имеется nginx 1.0.4 под которым работает
DokuWiki с русскими именами страниц.
Понадобилось все запросы к одному
диапазону имён редиректить на другой. В
случае обычного локейшена это делается
без проблем, всё замечательно работает
с русскими именами в URI. Проблема
вылезла, когда я обычный локейшн
попытался поменять на регексповый
(чтобы ловить в него запросы без учёта
регистра) - в него попадают только те
запросы, русские буквы в которых в
точности соответствуют содержанию
регекспа, невзирая на наличие ~*.

Пример:

location ~* ^/старый: {
    rewrite ^(.*):(.*)$ /новый:$2 permanent;
}

В него попадают запросы, начинающиеся с
"/старый:", но не попадают запросы,
начинающиеся со "/Старый:".

ЧЯДНТ?

P.S. Ещё один вопрос в догонку: в
документации сказано, что выделения в
регекс-локейшене можно потом
использовать в других директивах. Я
попробовал сделать так:

location ~* ^(/старый:)(.*)$ {
    rewrite ^ /новый:$2 permanent;
}

Nginx на такой локейшн не ругается - но и
не работает. Вдумчивое чтение
документации (два раза) не помогло.
Подскажите, где я ошибаюсь.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,212675,212675#msg-212675




Подробная информация о списке рассылки nginx-ru