Php 使用Zend_路由器将语言路由添加到现有路由

Php 使用Zend_路由器将语言路由添加到现有路由,php,model-view-controller,zend-framework,zend-router,Php,Model View Controller,Zend Framework,Zend Router,我正在尝试定义一个使用现有路由的语言路由。这样做的目的是使以下URL起作用: /en/dashboard/usability-testing/setup /fr/dashboard/usability-testing/setup 问题是它们只在没有语言(/dashboard/usability testing/setup)的情况下工作,当然,它们总是默认为英语 以下是我的application.ini路由定义: resources.router.routes.defaultmodule.typ

我正在尝试定义一个使用现有路由的语言路由。这样做的目的是使以下URL起作用:

/en/dashboard/usability-testing/setup
/fr/dashboard/usability-testing/setup
问题是它们只在没有语言(/dashboard/usability testing/setup)的情况下工作,当然,它们总是默认为英语

以下是我的application.ini路由定义:

resources.router.routes.defaultmodule.type = Zend_Controller_Router_Route_Module
resources.router.routes.defaultmodule.defaults.mod ule = "default"

resources.router.routes.testing.type = Zend_Controller_Router_Route
resources.router.routes.testing.route = "dashboard/usability-testing/:action/*"
resources.router.routes.testing.defaults.controlle r = "usability-testing"
resources.router.routes.testing.defaults.action = "index"

resources.router.routes.study.type = Zend_Controller_Router_Route
resources.router.routes.study.route = "dashboard/usability-study/:action/*"
resources.router.routes.study.defaults.controller = "usability-study"
resources.router.routes.study.defaults.action = "index"

resources.router.routes.language.type = Zend_Controller_Router_Route
resources.router.routes.language.route = ":language"
resources.router.routes.language.reqs.language = "^(ca|es|en|fr)$"
resources.router.routes.language.defaults.language = "en"
resources.router.routes.language.chain = "testing, study, defaultmodule"

resources.router.routes.default.type = Zend_Controller_Router_Route_Chain
resources.router.routes.default.chain = "language, defaultmodule"
有人能帮忙吗? 谢谢
@平均值

在这种情况下,您可能需要使用Apache.htaccess之类的工具来解决问题,或者至少使用web服务器而不是Zend_路由进行路由

我看到,当您拥有更复杂、更大的规则集时,最好使用apache,因为它比在PHP中使用apache更快


您需要为每种语言添加规则。你需要知道,使用domain.com/lang不是最好的选择。Matt Cutts将域用于国家或子域,如果您使用子域(lang.domain.com),您的问题可以在不使用Apache重写规则的情况下得到解决

谢谢你的回答。那么,你认为Zend_路线不可能做到这一点吗?不幸的是,现在改变语言路线(domain.com/lang)不是一个选择,也许你可以这样做,但我认为这不是一个好主意。我认为你最好的选择是为所有国家写下所有的规则。大家好,这是我找到的解决方案。谢谢你们的帮助