0

我正在使用主机名路由来捕获子域并用作类别。然后,我为控制器、操作和键/值对链接路由器路由。

$hostnameRoute = new Zend_Controller_Router_Route_Hostname(
 ':customer.ddc.:domain',
 array(
  'customer' => ':customer'
 )
);

$routerRoute = new Zend_Controller_Router_Route(
 ':controller/:action/*',
 array(
  'controller' => 'index',
  'action' => 'index'
)
);
$chainedRoute = $hostnameRoute->chain($routerRoute);
$frontController->getRouter()->addRoute('default',$chainedRoute);

我可以捕获除 URI 上的键/值对之外的所有内容。添加它们会导致请求中的 Params 对象不会被填充。

这有效: http ://category.mydomain.com/controller/action/

这不是:http ://category.mydomain.com/controller/action/username/frank

感谢您的任何建议。

4

3 回答 3

1

尝试不使用/*.

$routerRoute = new Zend_Controller_Router_Route(
    ':controller/:action',
    array(
        'controller' => 'index',
        'action'     => 'index'
    )
);

12.5.2 所示。描述了使用路由器

于 2010-01-18T15:53:36.343 回答
1

建议的补丁对我不起作用。我改编了 ZF 网站上其他地方的另一个补丁,它似乎运行良好: http: //pastie.org/1815135

于 2011-04-20T12:16:05.070 回答
0

链接路由时确实存在阻止通配符匹配的错误。错误描述中的注释对解决此问题非常有帮助,只需更改几行代码即可。

framework.zend.com/issues/browse/ZF-6654

于 2010-01-18T16:53:50.407 回答