如何从CakePHP中的URL中删除控制器和操作名称?

时间:2014-08-25 03:56:54

标签: cakephp

我如何编写工作路由器:连接到SEO友好链接?

在我的网站中,我有文章和类别。在右侧边栏中,文章的类别列在下面的链接中。

<?php echo $this->Html->link(ucwords($data['Category']['name']),array('controller'=>'Articles','action'=>'displayArticles','cat'=>$data['Category']['name'])) ?>

这为我提供了类似 - http://example.com/Articles/displayArticles/category-name的链接,现在我希望链接为http://example.com/category-name。所以为此,我尝试了下面的代码,但它不起作用。

Router::connect(
    '/:query/*', array('controller' => 'Articles', 'action' => 'displayArticles'), array(
        'params' => array('query', 'cat'),
        'named' => array(
            'query', 'cat'
        )
    )
);

所以请有人告诉我,如何在URL中实现类别名称(参数)。

提前致谢!

1 个答案:

答案 0 :(得分:1)

Router::connect(
    '/:query',
   array('controller' => 'Articles', 'action' => 'displayArticles',1)
    array('query' => '[a-zA-Z]+')
);

这里的id是带regex的数字。 请参阅this

您还必须在路由器中提供参数计数。