考虑两条路线:
路由器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操作。为什么呢?
谢谢,
乔
答案 0 :(得分:0)
前缀通常适用于admin
路由...因此,如果您的网址以' site
' (位于您的' A')然后它将映射到site_index
上的HomesController
操作。
详细了解前缀路由 - documentation