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"

当我尝试访问以下网址时,一切正常: http://site.local/en /тест.html -> 匹配

问题是,当我尝试访问仅包含拉丁字符的 url 时,路由正在传递: http://site.local/en/test.html -> 不匹配

我只是无法弄清楚问题出在哪里。任何帮助是极大的赞赏!

4

1 回答 1

0

问题出在正则表达式中。在圆括号中,我想包含除“.html”之外的所有内容,但语法错误。好吧,我现在仍然不认为这应该是正确的语法,但无论如何,以下更改完成了工作:

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