在cakephp上混淆路线

时间:2014-04-15 21:11:44

标签: cakephp routes

考虑两条路线:

路由器A:

Router::connect('/site', array('prefix' => 'site', 'controller' => 'home', 'action' => 'index'));

路由器B:

Router::connect('/:prefix/usuario/:action', array('controller' => 'usuarios'));

此链接// localhost / site / usuario / enderecos在路由器A上使用前缀,但不执行控制器主页,也不执行操作索引。它适用于路径B,并且调用控制器usuarios 此链接// localhost / site / usuario / endereco / 156的工作方式与上面的路径A相同,但不适用于路径B.所以它会抛出404 NOT FOUND。
如果我在路线B的末尾放一个/ *,它就可以了。

我的问题:

1)为什么链接与路径A一起用于以/ site开头但第二个链接不在路径B的任何链接。
2)如果我在路由A的末尾放置一个/ *,那么/ site的所有链接都会开始请求一个home控制器和一个site_index操作。为什么呢?

谢谢,

1 个答案:

答案 0 :(得分:0)

前缀通常适用于admin路由...因此,如果您的网址以' site' (位于您的' A')然后它将映射到site_index上的HomesController操作。

详细了解前缀路由 - documentation