Добавление языкового маршрута к существующему маршруту с Zend_Router - PullRequest
1 голос
/ 04 января 2012

Я пытаюсь определить языковой маршрут, работающий с существующим маршрутом. Идея состоит в том, чтобы заставить работать следующие 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"

Кто-нибудь может помочь? Спасибо @ Avergess

1 Ответ

0 голосов
/ 04 января 2012

Возможно, в этом случае вам нужно решить вашу проблему, используя что-то вроде Apache .htaccess или хотя бы маршрутизацию с использованием веб-сервера, а не Zend_Route.

Я видел, что когда у вас есть более сложные и большие наборы правил, лучше использовать Apache для этого, поскольку он быстрее и быстрее, чем делает то же самое в PHP.

Вам необходимо добавить правила для каждого языка.Вы должны знать, что использование domain.com/lang - не лучший вариант.Мэтт Каттс предлагает использовать домен для страны или субдомена. Если вы используете субдомен (lang.domain.com), ваша проблема может быть решена с помощью Apache RewriteRules.

...