2

CakePHP で SEO フレンドリーな URL をできる限り効率的に試しています。現在の形式を使用することができました。各例では、関数 index() を使用する最初の例を除いて、関数 view($slug) を使用しています。

/カテゴリー/

/カテゴリ/書籍/

/categories/books/it-and-computing/

しかし、IT とコンピューティングに「Web 開発」というサブカテゴリがあるとしたらどうでしょうか。URLを次のようにしたい:

/categories/books/it-and-computing/web-development/

あまりにも多くのルートを作成せずにこれを行う方法がわかりません。これまでのルートコードは次のとおりです。

Router::connect('/categories/', array('controller' => 'categories', 'action' => 'index'));

Router::connect('/categories/:slug', array('controller' => 'categories', 'action' => 'view'), array('pass' => array('slug')) );

Router::connect('/categories/:parent/:slug', array('controller' => 'categories', 'action' => 'view'), array('pass' => array('parent', 'スラッグ')) );

どんな助けでも大歓迎です

敬具

スティーブン

4

1 に答える 1

0
// 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');
  }
}

/categories/books/computing/web-development/cakephp/

結果:

Array
(
    [0] => books
    [1] => computing
    [2] => web-development
    [3] => cakephp
)

/カテゴリー/

結果:

do something else

/カテゴリ/本

結果:

Array
(
    [0] => books
)
于 2011-10-03T10:01:29.357 に答える