【问题标题】:Adding language route to an existing route with Zend_Router使用 Zend_Router 将语言路由添加到现有路由
【发布时间】:2012-01-04 07:16:53
【问题描述】:

我正在尝试定义与现有路由一起使用的语言路由。这个想法是使以下网址工作:

/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"

有人可以帮忙吗? 谢谢 @avergess

【问题讨论】:

    标签: php model-view-controller zend-framework zend-router


    【解决方案1】:

    也许在这种情况下,您需要使用 Apache .htaccess 之类的东西来解决您的问题,或者至少使用 Web 服务器而不是 Zend_Route 来路由。

    我看到当您有更复杂和更大的规则集时,最好使用 apache,因为它比在 PHP 中执行相同的操作更快更快。

    您需要为每种语言添加规则。您需要知道,使用 domain.com/lang 并不是最好的选择。 Matt Cutts suggests 使用域作为国家或子域,如果您使用子域 (lang.domain.com),则可以不使用 Apache RewriteRules 解决您的问题。

    【讨论】:

    • 感谢您的回答。那么,您认为 Zend_Route 不可能做到这一点吗?不幸的是,此时更改语言路径(domain.com/lang)不是一个选项
    • 是的,也许你可以这样做,但我认为这不是一个好主意。我认为您最好的选择是为所有国家/地区编写所有规则。
    • 您好,记录一下,这是我找到的解决方案forums.zend.com/viewtopic.php?f=69&t=43873。谢谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2013-04-07
    • 2021-10-15
    • 2014-07-25
    • 2016-08-16
    • 2014-09-15
    • 2014-03-30
    • 1970-01-01
    • 2021-12-04
    相关资源
    最近更新 更多