2010-10-07 3 views
2

Je suis en train de langue en fonction du nom de domaine (en pour en.example.com, tr pour tr.example.com):itinéraire Zend Framework en enchaînant application.ini

resources.router.routes.plain.type = "Zend_Controller_Router_Route" 
resources.router.routes.plain.route = "/:module/:controller/:action" 
resources.router.routes.plain.defaults.language= "en" 
resources.router.routes.plain.defaults.module = "content" 
resources.router.routes.plain.defaults.controller = "index" 
resources.router.routes.plain.defaults.action = "index" 

resources.router.routes.plain1.type = "Zend_Controller_Router_Route" 
resources.router.routes.plain1.abstract = 1 
resources.router.routes.plain1.route = "/:module/:controller/:action/*" 
resources.router.routes.plain.defaults.module = "content" 
resources.router.routes.plain.defaults.controller = "index" 
resources.router.routes.plain.defaults.action = "index" 

resources.router.routes.dom0.type = "Zend_Controller_Router_Route_Hostname" 
resources.router.routes.dom0.abstract = 1 
resources.router.routes.dom0.route = "en.example.com" 
resources.router.routes.dom0.defaults.language= "en" 
resources.router.routes.chn1.type = Zend_Controller_Router_Route_Chain 
resources.router.routes.chn1.chain = "dom0, plain1" 

resources.router.routes.dom1.type = "Zend_Controller_Router_Route_Hostname" 
resources.router.routes.dom1.abstract = 1 
resources.router.routes.dom1.route = "tr.example.com" 
resources.router.routes.dom1.defaults.language= "tr" 
resources.router.routes.chn2.type = Zend_Controller_Router_Route_Chain 
resources.router.routes.chn2.chain = "dom1, plain1" 

le problème ici est quand J'appelle url uniquement avec modulename et sans spécifier le contrôleur ou l'action: tr.example.com/content/ je reçois la langue définie à « en »

Mais quand je l'appelle avec modulename, contrôleur et l'action: tr. example.com/content/article/read tout va bien

Qu'est-ce que je fais de mal?

Merci à l'avance

+0

De plus, notez que vous avez des problèmes de nommage, les valeurs par défaut de 'plain1' sont définies sur la route' plain' - C'est probablement le problème, car vous n'avez pas de 'defaults' défini pour la route' plain1', il faut que les paramètres soient là pour correspondre. – gnarf

+0

Désolé gnarf Je n'ai pas compris ce que vous vouliez dire "vous n'avez pas défini de valeurs par défaut pour la route plain1". plain et plain1 ont les mêmes valeurs par défaut, la seule différence entre elles est plain1 est abstrait (à utiliser en chaîne seulement). Dans cette configuration, selon le dernier premier sorti règle la file d'attente d'itinéraire doit être: 1- CHN2 2- CHN1 3- plaine Ai-je tort? – carlos

+0

Ouais, on dirait que @gnarf l'a cloué. Dans le bloc où vous avez (probablement l'intention de) définir la route "plain1", il semble que vous laissiez tomber le "1" final dans "plain1", laissant votre "simple". Par conséquent, votre route "plain1" ne contient pas les valeurs par défaut du module que vous attendez (probablement). –

Répondre

1

Vous n'avez pas spécifié module par défaut, le contrôleur et l'action pour plain1.