Задать вопрос

Замудрёным регекспом?

Задача: из имени домена вида part1.part2.part3.part4 получить домен вида part2.part3.part4 используя capture groups

part1 и part2 могут отсутствовать

если part2 нет (домен второго уровня), то получить домен www.part3.part4


В итоге должно работать так:
www.subdomain.domain.ru -> subdomain.domain.ru

subdomain.domain.ru -> subdomain.domain.ru
www.domain.ru -> www.domain.ru

domain.ru -> www.domain.ru


Использование capture groups принципиально.


Возможно ли решить задачу в рамках PCRE?


Вопрос также можно сформулировать в виде: как в PCRE задать значение для capture group, если она выглядит как (.+)? и не сматчилась.
  • Вопрос задан
  • 3339 просмотров
Подписаться 3 Оценить Комментировать
Ответ пользователя noonesshadow К ответам на вопрос (4)
@noonesshadow
server_name "~^(?\w+\.)?(?\w+\.)?(?\w+\.)(?\w+)$"
if ($part2 = "") {$part2 = «www»;}
return 301 http://$part2$part3$part4
Ответ написан