2010-10-07 65 views
2

我设置取决于域名语言链接(en表示en.example.com,TR为tr.example.com):Zend框架路线的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" 

这里的问题是,当我把网址只MODULENAME并没有指定控制器或者动作: tr.example.com/content/ 我得到设定的语言“EN”

但是,当我与模块名,控制器和行动呼吁: TR。 example.com/content/article/read 一切都很好

我该怎么办错了吗?

在此先感谢

+0

此外,你有一些命名问题的通知,默认的'plain1'是在'plain'航线上定义 - 也就是有可能的问题,因为你的'plain1'路线没有定义'defaults',它需要参数在那里匹配。 – gnarf 2010-10-07 19:05:24

+0

对不起,gnarf我没有得到你的意思“你没有为plain1路线定义的默认值”。 平原和plain1具有相同的默认值,它们之间的唯一区别是plain1是抽象的(仅在链使用)。 在此配置中,根据后进先出规则,路由队列应为: 1- chn2 2- chn1 3-明确 我错了吗? – carlos 2010-10-08 08:08:22

+0

是啊,看起来像@gnarf钉了它。在块,你(可能打算)定义“plain1”的路线,看来你放下后“1”,在“plain1”,让你只用“普通”。因此,您的“plain1”路线并不会包含您(可能)期望的模块默认值。 – 2011-05-04 01:46:31

回答

1

您尚未指定plain1的默认模块,控制器和操作。