Welcome! Log In Create A New Profile

Advanced

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

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

Пример:

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

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

ЧЯДНТ?

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

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

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

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

RedRat July 20, 2011 06:41AM

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

Maxim Dounin July 20, 2011 07:50AM

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

RedRat July 20, 2011 09:48AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 147
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready