Я хочу поймать мой (необязательный) поддомен и домен через тип маршрута 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
Если кто-то может мне помочь с этими двумя шаблонами регулярных выражений, спасибо!
Я закончил с этим:
'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]+)',
),
),
Это работает с моими вариантами использования:
Если кто-то обнаружит, что что-то не работает, не стесняйтесь комментировать.
Спасибо.
Других решений пока нет …