У меня есть один модуль (сайт) в моем приложении Zend Framework.Сначала я проверяю, существует ли контроллер / действие, а если нет, то пытаюсь сопоставить URL с некоторыми пользовательскими маршрутами.
Мой код в _bootstrap.php выглядит следующим образом:
$router = $this->frontController->getRouter();
$router->removeDefaultRoutes();
// catalog category product route
$route = new Zend_Controller_Router_Route(
':categoryIdent/:productIdent',
array(
'action' => 'view',
'controller' => 'product',
'module' => 'site',
'categoryIdent' => '',
'productIdent' => ''
),
array(
'categoryIdent' => '[a-zA-Z-_0-9]+',
'productIdent' => '[a-zA-Z-_0-9]+'
)
);
$router->addRoute('catalog_category_product', $route);
$router->addDefaultRoutes();
Я знаю, что маршруты в Zend Framework совпадают в обратном направлении.Поэтому я попробовал следующие URL:
- example.com / site / index / index -> OK (выполнение action / controller => index / index)
- example.com / bags/ bag-7 -> OK (выполнение действия / controller => product / view)
- example.com / index / index -> WRONG (выполнение действия / controller => product / view, но это должно бытьчасть из маршрутов по умолчанию, которые определены в конце)
Это проблема, и я не понимаю, почему маршрут контроллера / действия по умолчанию не применяется.