2009-10-24 51 views
1

我在玩Zend 1.9,並希望有語言參數作爲子域。語言作爲與Zend 1.9子域

像:http://en.site.com

是否有可能得到的語言在.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的默認動作不叫,我得到

消息:操作「喬」不存在,並沒有被困在__call()

你有想法嗎?

謝謝你們。

蒂埃裏

回答

2

你很幸運 - 有哪些可以用來代替正是這種目的的Zend_Controller_Router_Route_Hostname。如果您想在域名後面的部分中實現自定義路由,則需要查看Zend_Controller_Router_Route_Chain

+0

非常感謝。我添加了我的routes.ini,但遇到問題,請參閱我的編輯。再次感謝 – thierryb 2009-10-25 22:58:50

+2

在這種情況下,主機名路由不匹配,所以不使用以下路由。您將不得不定義另一條(正常)路由,它執行相同的操作,但沒有之前鏈接的主機名路由。 – 2009-10-26 00:16:12