При использовании этого типа маршрутов вы должны уделять большое внимание их заказу.
Согласно Документация к маршрутизатору Zend :
Routes will be queried in a LIFO order, and hence the reason behind the name RouteStack.
Более того:
As such, routes that will match most often should be registered last,
and least common routes first.
[...]
Alternatively, you can set priorities by giving the priority as third parameter
to the addRoute() method, specifying the priority in the route specifications
or setting the priority property within a route instance before adding it
to the route stack.
В вашем случае тот факт, что данный конфиг работает, является просто «счастливым совпадением» (ну, объявление порядка модулей немного помогает), потому что вы используете маршрут ксоответствовать всему , даже тому, что должно соответствовать маршруту API.
Я предлагаю вам добавить приоритет к этим маршрутам, чтобы быть уверенным, что маршрут «соответствует всему»будет последним, чтобы быть проверенным:
//module App, file: config.module.php
'routes' => [
'home' => [
'type' => Regex::class,
'priority' => -1000, // make sure that this will be tested as last
'options' => [
'regex' => '([^\?]+)(\?.*)?',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
'spec' => ''
],
],
],
Маршрут Api module
идеален