【问题标题】:CakePHP Pagination - how to remove "page:" from url for better seo/cleaner URLCakePHP 分页 - 如何从 url 中删除“page:”以获得更好的 seo/cleaner URL
【发布时间】:2010-11-07 21:24:14
【问题描述】:

当我使用 CakePHP Paging 时,我得到一个这样的 url:

http://example.com/php/page:2

我必须在控制器、视图和 routes.php 中进行哪些更改才能创建这样的工作 url:

http://example.com/php/2

【问题讨论】:

    标签: php cakephp seo pagination paging


    【解决方案1】:

    哦,是的,现在我看到了你的问题。那么你可以这样做:

    function index($page){
      $this->paginate = array('page'=>$page);
      $this->set('stuff', $this->paginate('YourControllerName'));
    }
    

    更多详情请看这里: http://bakery.cakephp.org/articles/view/basic-pagination-overview-3

    另外,当然你应该做一些验证页面是一个实际的数字,页面甚至会存在,但我认为这是它的基础。

    关于路线和观点,我没有尝试过,但是看看蛋糕组上的这些帖子,我认为他们有和你类似的问题。

    http://www.mail-archive.com/cake-php@googlegroups.com/msg45878.html

    【讨论】:

    • 我想你误会了我,我想创建不同的分页 URL。在 CakePHP 中,您可以使用分页功能在不同页面之间拆分数据。该 URL 由 CakePHP 自动创建,“page:2”表示:显示不适合第一页的数据(如前 15 个项目),“page:3”然后显示元素 30- 45等
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      我的猜测是这并不容易自动化,你肯定需要做一些调整。

      对于初学者,您可能必须创建自己的分页器助手并继承默认的。从代码的外观来看,您需要覆盖 PaginatorHelper::__pagingLink() 中的链接生成代码,但可能还有 numbers() 和 prev() 等。因为它们都使用页面参数创建链接。

      也许更好的方法是覆盖您的 AppHelper::url(),检查那里的“页面”参数并修改 url 以满足您的需求。

      但是,我还没有尝试过所有这些,所以不能保证..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-06
        • 2014-05-03
        • 2021-04-07
        相关资源
        最近更新 更多