1

既存のルートで機能する言語ルートを定義しようとしています。アイデアは、次の 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

4

1 に答える 1

0

おそらくこの場合、Apache .htaccess などを使用して問題を解決するか、少なくとも Zend_Route ではなく Web サーバーを使用してルーティングする必要があります。

より複雑で大きなルールセットがある場合は、Apache を使用する方が PHP で同じことを行うよりも高速で高速であるため、Apache を使用する方がよいことがわかりました。

言語ごとにルールを追加する必要があります。domain.com/lang を使用することは最善の選択肢ではないことを知っておく必要があります。Matt Cuttsは、国またはサブドメインにドメインを使用することを提案しています。サブドメイン (lang.domain.com) を使用する場合、問題は Apache RewriteRules なしで解決できる可能性があります。

于 2012-01-04T13:20:12.340 に答える