2011-12-27 54 views
1

是否可以使用Zend Framework Zend_Controller_Router_Route_Hostname爲實際域創建通配符匹配?我嘗試了下面的簡單示例,但系統無法識別路線。當我硬連線(login.domain.com)時,它會正常工作。Wilcard(*)匹配Zend_Controller_Router_Route_Hostname

resources.router.routes.login.type = "Zend_Controller_Router_Route_Hostname" 
resources.router.routes.login.route = "login.*" 
resources.router.routes.login.chains.index.type = "Zend_Controller_Router_Route" 
resources.router.routes.login.chains.index.route = ":action/*" 
resources.router.routes.login.chains.index.defaults.controller = "login" 
resources.router.routes.login.chains.index.defaults.action = "index" 

回答

2
$route = new Zend_Controller_Router_Route_Hostname ('login.:domain.:net'); 
    $_SERVER ['HTTP_HOST'] = 'login.example.com'; 
    $request = new Zend_Controller_Request_Http(); 
    $match = $route->match ($request); 
    var_dump($match); 
+0

謝謝,我想我可以用這種方法來完成這項工作。 – VinnyD 2011-12-27 08:04:44

1

這是可能的,而不:域:淨兩者都是明確的,即沒有規定只是一個週期?

即我現在有

新Zend_Controller_Router_Route_Hostname( 'sub.example.com',陣列( '控制器'=> 'X'));

..但我真的很想做的是:

新Zend_Controller_Router_Route_Hostname( 'sub.:remainder',array(' 控制」 => 'X'));

..因此,此路線將匹配任何以'sub。'開頭的主機名。包括sub.example.com,sub.another.example.com,sub.somethingelse.com,sub.com等。

雖然看起來不起作用!

有沒有工作?