我定义了以下自定义路由:
; 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 - >匹配
问题在于,当我尝试访问仅包含拉丁字符的网址时,路由正在传递: http://site.local/en/test.html - >不匹配
我无法弄明白问题出在哪里。非常感谢任何帮助!
答案 0 :(得分:0)
问题在于正则表达式。在圆括号中,我想包括除“.html”之外的所有内容,但语法错误。好吧,我现在仍然不应该是正确的语法,但无论如何,以下更改完成了工作:
routes.lang.chains.a.route = "(.*).html$"