【问题标题】:Nice seo URLs in CakePhpCakePhp 中不错的 seo URL
【发布时间】:2012-10-27 11:19:27
【问题描述】:

我正在 CakePhp 上开发网站,但我遇到了 URL 的下一个问题。

在我的类别和子类别页面的应用中,我需要有下一个 URL:

  • /category-slug/
  • /category-slug/subcategory-slug

问题是这种格式的 URL 与任何 controller/action URL 匹配,我不能硬编码所有类别/子类别 url,因为它们有很多,而且它们是动态的。

如何解决?

编辑

我发现了这种方法http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp,但可能存在不需要对数据库、缓存等进行额外检查的东西?

【问题讨论】:

    标签: url cakephp url-rewriting url-routing


    【解决方案1】:

    最快/最简单的方法:

    // routes.php
    Router::connect('/category/:category/:subcategory', 
                         array('controller'=>'categories', 'action'=>'view'), 
                         array('pass' => array('category', 'subcategory')));
    
    // CategoryController/view
    public function view($category = 'default', $subcategory = null) {
        // your logic here
    }
    
    // links
    $this->Html->link('View PHP >> Tutorials', array('action'=>'view', 
                           'category'=>'php', 'subcategory'=>'tutorials')); 
    
    // output
    <a href="/category/php/tutorials">View PHP >> Tutorials</a>
    

    通过在开头引入/category/,您无需担心为每个其他控制器/动作提供路由(否则每个请求都会发送到您的类别控制器。

    【讨论】:

    • 谢谢,但我正在寻找在“/category/subcategory”之前或之后没有任何附加 URL 部分的解决方案。这是一个商业项目,此类 URL 是网站非常重要的部分。
    • this post 可能对你有用;但除此之外,如果不为每个可能的请求提供路线,我不知道有任何其他方法可以实现这一目标。
    猜你喜欢
    • 1970-01-01
    • 2011-10-10
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 2010-11-07
    • 2014-01-14
    相关资源
    最近更新 更多