Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
bonjour,
j'ai actuellement ceci dans mon bootstrap :
$router = new Zend_Controller_Router_Rewrite(); $router->addRoute( 'default', new Zend_Controller_Router_Route( '/:module/:language/:controller/:action/*', array( 'module' => 'default', 'language', 'controller' => 'index', 'action' => 'index' ) ) ); (...) $frontController->setRouter($router);
ce qui fait que mes pages sont actuellement comme ceci : /default/fr/index/index/category/1/
je voudrais pour certaines pages seulement (les publiques) modifier l'url pour qu'elle soit plus belle,
je voudrais que /category-%d-nom/ redirige vers default/fr/index/index/category/%d/ (et de meme pour d'autres pages)
j'ai essayé en ajoutant une route mais la premiere est toujours prise quand meme
Hors ligne
je pense que la réponse a ta question ce trouve par là
tu peux même faire
$router->removeDefaultRoutes();
pour enlever le comportement par default du routeur, ce qui te permet de définir toutes tes routes toi même sans risque de doublons.
Dernière modification par lethak (22-08-2008 19:12:45)
Hors ligne
j'ai fait :
$router->addRoute( 'IndexController', new Zend_Controller_Router_Route_Regex( 'cat-(\d+)-(.+)', array( 'module' => 'default', 'language' => 'fr', 'controller' => 'index', 'action' => 'index' ), array( 1 => 'category', 2 => 'description' ) ) );
et ca marche, je voudrais maintenant avoir une url du type :
/default/language/cat-%d-%s
cependant la je n'y arrive pas, meme en mettant en "dur" dans l'expression régulière default/fr/ il prend la seconde route de type module/language/controller/action
Hors ligne
Imho, il faut, soit que tu rendes plus restrictive celle que tu viens de nous afficher, soit que tu changes l'ordre pour que la nouvelle que tu tentes de faire soit testée avant l'autre.
Hors ligne
rendre plus restrictive ? je ne vois pas trop, je débute avec zend_controller_route
dans l'ordre j'ai mis d'abord la route spécial puis la route général
Hors ligne
personne n'a d'idées ?!
Hors ligne