2009-10-20 135 views
0

我正在使用.ini文件在我的應用程序中添加路由。Zend Framework子域問題

resources.router.routes.username.type = "Zend_Controller_Router_Route_Hostname" 
resources.router.routes.username.route = ":username.example.com" 
resources.router.routes.username.defaults.module = "userinfo" 
resources.router.routes.username.chains.index.type = "Zend_Controller_Router_Route" 
resources.router.routes.username.chains.index.route = ":language/:controller/:action/*" 
resources.router.routes.username.chains.index.defaults.controller = "index" 
resources.router.routes.username.chains.index.defaults.action = "index" 

1) http://john.example.com/fr/controller/action 
2) http://john.example.com/fr/controller/action/id/10 

它的工作#1網址。請求參數

Request Parameters: 
array (
    'language' => 'fr', 
    'controller' => 'controller', 
    'action' => 'action', 
    'username' => 'john', 
    'module' => 'userinfo', 
) 

#2 url它不工作。請求參數

Request Parameters: 
array (
    'controller' => 'fr', 
    'action' => 'controller', 
    'module' => 'default', 
) 

任何人都可以爲此提出解決方案。

+0

您使用的是Zend Framework的哪個版本?據我所知,路由鏈接存在一些問題... – 2009-10-20 08:36:45

+0

我使用1.9.4版本 – 2009-10-20 14:44:14

回答

0

您是否爲路線設置了默認語言?通過說它不起作用,你能提供更多細節嗎? 我遇到了一些類似的問題,Zend_navigation沒有考慮到語言參數,並總是切換到我定義的默認語言lang。

最後我有一個自定義插件手動設置默認語言在routshutdown請參閱我的文章,如果有幫助

Zend Framework: Zend_translate and routing related issue

0
resources.router.routes.username.type = "Zend_Controller_Router_Route_Hostname" 
resources.router.routes.username.route = ":username.example.com" 
resources.router.routes.username.defaults.module = "userinfo" 
resources.router.routes.username.chains.index.type = "Zend_Controller_Router_Route" 
resources.router.routes.username.chains.index.route = ":language/:controller/:action/*" 
resources.router.routes.username.chains.index.defaults.controller = "index" 
resources.router.routes.username.chains.index.defaults.action = "index" 
resources.router.routes.username.chains.index.defaults.language = "en" 

我添加到默認語言參數航線亂砍它。但是這個網址不起作用

http://john.example.com/fr/controller/action/id/10 
Request Parameters: 
array (
    'controller' => 'fr', 
    'action' => 'controller', 
    'module' => 'default', 
) 
0

看起來路線已被重置爲默認值。我碰到之前

創建一個插件並註冊到前端控制器。定義dispatchLoopStartup()在那裏嘗試設置使用

$router = $fc->getRouter(); 
$router->setGlobalParam('lang','somelanguage'); 
$router->setGlobalParam('module','somemodule'); 

看看你是否可以帶回正確的路線語言參數或模塊名稱。