Cakephp网址链接

时间:2017-11-09 11:47:56

标签: php cakephp

我想让我的所有网页/网址都很友好,包括动态网页,但我仍坚持使用它。

我让它适用于静态页面,例如:

$routes->connect('/:lang/about',['controller' => 'Pages', 'action' => 'about'] ); 

但是当我将以下内容添加到路线

$routes->connect('/:lang/:slug',['controller' => 'MyController', 'action' => 'index'], ['pass' => ['slug']] ); 

所有页面都重定向到MyController,甚至是静态页面,所以我想知道是否有任何解决方案。

感谢。

1 个答案:

答案 0 :(得分:1)

“全能”路线(如您问题中的路线)需要在之后其他路线。这样就可以先检查静态路由,只有当没有其他路由匹配时才使用“全部捕获”

例如

$routes->connect('/:lang/about',['controller' => 'Pages', 'action' => 'about'] );
$routes->connect('/:lang/:slug',['controller' => 'MyController', 'action' => 'index'], ['pass' => ['slug']] );

而不是(注意排序):

$routes->connect('/:lang/:slug',['controller' => 'MyController', 'action' => 'index'], ['pass' => ['slug']] );
$routes->connect('/:lang/about',['controller' => 'Pages', 'action' => 'about'] );