Zend 2 Route Имя хоста regex

Я хочу поймать мой (необязательный) поддомен и домен через тип маршрута Hostname в Zend 2.

Я плохо в регулярных выражениях и не могу найти что-то, что работает правильно.

'type' => 'Hostname',
'options' => array(
'route' => '[:subdomain.]:project_domain',
'constraints' => array(
'subdomain' => '??REGEX??',
'project_domain' => '??REGEX??',
),
),
'may_terminate' => false,

пример 1:
www.domain.tld => subdomain = www; project_domain = domain.tld

пример 2:
test.www.domain.tld => subdomain = test; project_domain = www.domain.tld

пример 3:
domain.tld => project_domain = domain.tld

Если кто-то может мне помочь с этими двумя шаблонами регулярных выражений, спасибо!

1

Решение

Я закончил с этим:

'type' => 'Hostname',
'options' => array(
'route' => '[:subdomain.]:project_domain',
'constraints' => array(
'subdomain' => '([a-zA-Z0-9-]+)?([^.])',
'project_domain' => '(([a-zA-Z0-9-]+)\.)+([a-zA-Z0-9]+)',
),
),

Это работает с моими вариантами использования:

  • test.domain.tld
  • domain.tld
  • test1.sub.domain.tld
  • ASD-asd.sub.do-main.tld

Если кто-то обнаружит, что что-то не работает, не стесняйтесь комментировать.

Спасибо.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]