2010-10-07 7 views
2

Я заходящего язык в зависимости от имени домена (еп для en.example.com, тр для tr.example.com):Zend Framework маршрут цепочки в 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" 

здесь проблема, когда Я называю URL только с MODULENAME и без указания контроллера или: tr.example.com/content/ Я получаю язык на «ан»

Но когда я звоню с MODULENAME, контроллер и действие: тр. example.com/content/article/read все в порядке

Что делать неправильно?

Заранее спасибо

+0

Кроме того, обратите внимание, что у вас есть некоторые проблемы с именами, значения по умолчанию для 'plain1' определены на пути« plain ». Это, скорее всего, проблема, потому что у вас нет' defaults', определенных для маршрута 'plain1', для этого требуются параметры. – gnarf

+0

Извините gnarf Я не понял, что вы имели в виду «у вас нет значений по умолчанию для простого маршрута1». plain и plain1 имеют одинаковые значения по умолчанию, единственная разница между ними - plain1 является абстрактной (использовать только в цепочке). В этой конфигурации в соответствии с последним в первом правиле очередь маршрута должна быть: 1- chn2 2- chn1 3- plain Я не прав? – carlos

+0

Да, похоже, что @gnarf прибил его. В блоке, где вы (вероятно, намерены) определить маршрут «plain1», кажется, что вы отбрасываете конечный «1» в «plain1», оставив ваш «просто». Следовательно, ваш маршрут «plain1» не будет содержать модуль по умолчанию, который вы (возможно) ожидаете. –

ответ

1

Вы не указали модуль по умолчанию, контроллер и действие для plain1.

Смежные вопросы