Как пример создаете модуль, например Crm, домашнюю директорию делаете на /public проекта.
И в конфиге модуля делаете такой маршрут
'crm-subdomain' => [
'type' => Hostname::class,
'options' => [
'route' => 'crm.localhost',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
]
],
'may_terminate' => true,
'child_routes' => [
'index' => [
'type' => Segment::class,
'options' => [
'route' => '[/:action][/]',
'constraints' => [
'action' => '[a-z0-9\-]+',
],
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
]
]
],
По типу Hostname, будут отсеиваться маршруты, дальше идет маршрутизация через child_routes.