Vous devez ajouter plusieurs itinéraires, quelque chose comme
$router->addRoute('level1cat', new Zend_Controller_Router_Route(
'products/:cat1/:page',
array(
'controller' => 'product',
'action' => 'index',
'page' => 1
),
array(
'cat1' => '\w+',
'page' => '\d+'
)
));
$router->addRoute('level2cat', new Zend_Controller_Router_Route(
'products/:cat1/:cat2/:page',
array(
'controller' => 'product',
'action' => 'index',
'page' => 1
),
array(
'cat1' => '\w+',
'cat2' => '\w+',
'page' => '\d+'
)
));
$router->addRoute('level3cat', new Zend_Controller_Router_Route(
'products/:cat1/:cat2/:cat3/:page',
array(
'controller' => 'product',
'action' => 'index',
'page' => 1
),
array(
'cat1' => '\w+',
'cat2' => '\w+',
'cat3' => '\w+',
'page' => '\d+'
)
));
Vous pouvez utiliser différentes actions de contrôleur par trajet, il est à vous comment vous gérez les données.
Remarque, ce qui est totalement non testé et est juste ma meilleure estimation au moment (travail dans .NET en ce moment, ne peut pas se moquer de même vers le haut)
Un point important que vous remarquerez peut-être dans les deux réponses ci-dessous, nous Les deux ont utilisé un contrôleur nommé "produit" et non "produits". Ceci afin d'éviter les conflits avec le routeur par défaut. – Phil