Добавление языкового маршрута к существующему маршруту с помощью 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.