在CakePHP中保留父段塞

在CakePHP中保留父段塞,cakephp,routes,cakephp-1.3,slug,custom-routes,Cakephp,Routes,Cakephp 1.3,Slug,Custom Routes,我正在CakePHP中尽可能高效地试验SEO友好的URL,我已经设法使用了当前的格式,除了第一个使用函数索引的示例外,每个示例都使用函数视图$slug /类别/ /类别/书籍/ /类别/书籍/it和计算/ 但是如果IT和计算有一个子类Web开发呢?我希望URL变成: /类别/书籍/it和计算/web开发/ 我不知道如何在不创建太多路由的情况下执行此操作。这是我到目前为止的路线代码: 路由器::连接“/categories/”,数组“controller”=>“categories”,“actio

我正在CakePHP中尽可能高效地试验SEO友好的URL,我已经设法使用了当前的格式,除了第一个使用函数索引的示例外,每个示例都使用函数视图$slug

/类别/

/类别/书籍/

/类别/书籍/it和计算/

但是如果IT和计算有一个子类Web开发呢?我希望URL变成:

/类别/书籍/it和计算/web开发/

我不知道如何在不创建太多路由的情况下执行此操作。这是我到目前为止的路线代码:

路由器::连接“/categories/”,数组“controller”=>“categories”,“action”=>“index”

路由器::连接“/categories/:slug”, 数组“控制器”=>“类别”,“操作”=>“视图”, 数组'pass'=>数组'slug' ;

路由器::连接“/categories/:parent/:slug”, 数组“控制器”=>“类别”,“操作”=>“视图”, 数组'pass'=>数组'parent','slug' ;

任何帮助都将不胜感激

问候

斯蒂芬

// in routes.php
Router::connect('/categories/:row:lastslash',array('controller' => 'settings', 'action' => 'show',),array(
      'pass'=>array('row'),
      'row'=>'.*?',
      'lastslash'=>'\/?'
));

//in controller
function show($row = ""){
  if($row){
    $categories = split('/',$row);

    ?><pre><? print_r($categories);?></pre><?die();
  }else{
    die('do something else');
  }
}
/类别/

结果:

do something else
Array
(
    [0] => books
)
/类别/书籍

结果:

do something else
Array
(
    [0] => books
)
/类别/

结果:

do something else
Array
(
    [0] => books
)
/类别/书籍

结果:

do something else
Array
(
    [0] => books
)

我也希望这个问题能得到更多的答案。对n级子类别有效的东西。上面的方法行不通,我想你误解了这个问题。网站需要在URL中保留完整的历史记录,就像面包屑一样/categories/books/computing/web development/cakephp/etct这看起来正是我想要的,我现在不能尝试,但我会稍后再尝试。非常感谢苏金森:我很想给你投票,但是我对这个网站太陌生了。我也希望这个问题能得到更多的答案。对n级子类别有效的东西。上面的方法行不通,我想你误解了这个问题。网站需要在URL中保留完整的历史记录,就像面包屑一样/categories/books/computing/web development/cakephp/etct这看起来正是我想要的,我现在不能尝试,但我会稍后再尝试。非常感谢苏金森:我很想给你投票,但是我对这个网站太陌生了。干杯