0

次のカスタムルートを定義しました。

; Language
routes.lang.type = "Zend_Controller_Router_Route"
routes.lang.route = :lang
routes.lang.defaults.lang = "bg"
routes.lang.defaults.action = "index"
routes.lang.defaults.controller = "index"
routes.lang.defaults.module = "site"
routes.lang.reqs.lang = "[a-z]{2}"

; Article
routes.lang.chains.a.type = "Zend_Controller_Router_Route_Regex"
routes.lang.chains.a.route = "([^\.html ]+).html$"
routes.lang.chains.a.defaults.action = "index"
routes.lang.chains.a.defaults.controller = "article"
routes.lang.chains.a.defaults.module = "site"
routes.lang.chains.a.map.articleIdent = 1
routes.lang.chains.a.reverse = "%s.html"

次のURLにアクセスしようとすると、すべて正常に機能します: http://site.local/en/тест.html- >match

問題は、ラテン文字のみを含むURLにアクセスしようとすると、ルートが渡されていることです: http://site.local/en/test.html- >一致しません

どこに問題があるのか​​わからない。どんな助けでも大歓迎です!

4

1 に答える 1

0

問題は正規表現にありました。丸括弧内に「.html」以外のすべてを含めたかったのですが、構文が間違っています。まあ、私はまだそれが正しい構文である必要はありませんが、とにかく次の変更で仕事が完了しました:

routes.lang.chains.a.route = "(.*).html$"
于 2012-06-24T13:09:50.523 に答える