Welcome! Log In Create A New Profile

Advanced

регулярки в server_name

July 02, 2012 11:35AM
Согласно документации, в server_name можно использовать регулярки.
Понадобилось сделать редирект c урлов вида www.sub.site.ru на sub.site.ru, при этом сохранив работу www.site.ru. sub - доменов более 50.

Сам сайт описан как
server_name site.ru www.site.ru *.site.ru

Сделал отдельный сервер с server_name ~^www\.(w+)\.site.ru$;
по логике - имя корректное. Этот блок идёт выше основного. При этом в него мы не попадаем никогда. Как показало 4 часа ковыряния, "у регэкспов в сервер_нейм приоритет минимальный и туда попадаем если нет ничего лучше". Есть возможность выставить этому регэкспу высокий приоритет? Или только изменить главное описание, сделав его также регэкспом и потеряв в производительности?

Использовать дефолтный сервер не вариант - сайтов на сервере больше 20 плюс "по умолчанию" должно отдавать ошибку. Сайтов с такой системой в дальнейшем также будет больше одного.

Второй вариант - сделать так нелюбимый тут if ($http_host ~* ^www\.w+\.site\.ru)... и как модифицировать $http_host? rewrite меняет только uri.

Третий - через встроенный perl. Не хотелось бы, но если у кого такая схема работает - просьба поделиться вариантами.

четвертый, совсем уж через 1 место - описать каждый www-поддомен в отдельном сервере.. 50+ раз...
Subject Author Posted

регулярки в server_name

playnet July 02, 2012 11:35AM

Re: регулярки в server_name

playnet July 02, 2012 12:13PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 294
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