我正在玩Zend 1.9,并希望将语言参数作为子域名。
是否可以在.htaccess中获取语言并将其设置为我可以在Zend中使用的环境变量?
达到我想要的最佳方式是什么?
- 添加 - :
我将此添加到我的routes.ini中:
[routes]
routes.lif.type = "Zend_Controller_Router_Route_Hostname"
routes.lif.route = ":language.domain.:tld"
routes.lif.reqs.language= "[a-z]{2}"
routes.lif.defaults.controller = "index"
routes.lif.defaults.action = "index"
routes.lif.defaults.language = "en"
; default
routes.lif.chains.default.type = "Zend_Controller_Router_Route"
routes.lif.chains.default.route = "/:controller/:action"
routes.lif.chains.default.defaults.controller = index
routes.lif.chains.default.defaults.action = index
; register
routes.lif.chains.register.type = "Zend_Controller_Router_Route"
routes.lif.chains.register.route = "/register"
routes.lif.chains.register.defaults.controller = "register"
routes.lif.chains.register.defaults.action = "newuser"
; details
routes.lif.chains.band.type = "Zend_Controller_Router_Route"
routes.lif.chains.band.route = "/details/:name"
routes.lif.chains.band.defaults.controller = "details"
routes.lif.chains.band.defaults.action = "getdetails"
如果我去:http://en.domain.com/details/joe,这项工作很顺利 但不幸的是,如果我删除子域:http://domain.com/details/joe默认操作未被调用,我得到了
消息:操作“joe”不存在且未被捕获在__call()
中你有什么想法吗?
谢谢你们。
亨利
答案 0 :(得分:2)
你很幸运 - 有一个Zend_Controller_Router_Route_Hostname可以用来代替这个目的。如果您想在域之后的部分中实现自定义路由,则需要查看Zend_Controller_Router_Route_Chain。