Регекс локейшены с русскими именами
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