Добавление языкового маршрута к существующему маршруту с помощью Zend_Router

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

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

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

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

Другие вопросы по тегам