ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – Codeigniter – SEO友好的URL结构(Slug实现)

2019-07-16 09:27:49  阅读:330  来源: 互联网

标签:wordpress php codeigniter magento slug


我想在codeigniter框架中开发一个网站,我可以通过slug访问任何网页.
例如,就像WordPress和Magento一样,我们可以通过www.sitename.com/category_type/category_detailpage访问类别页面,我们也可以通过在主URI www.sitename.com/category_detailpage之后添加slug来直接访问Category_detail.
所以我的问题是,如果你在Codeigniter中有这个Slug目录的任何案例研究项目代码,我如何设计数据库中的slug表模式,请尽快告诉我.
提前致谢!

解决方法:

如何使用slug?

将举例说明:
网址 – http://www.example.com/products/apple-iphone-5S-16GB-brand-new/

1)假设您有产品页面和产品页面需要URL中的一些数据来了解要显示的产品.
2)在我们使用我们从URL获取的id查询数据库之前.但现在我们会做同样的事情(查询我们的数据库)只是用slug替换id就是这样!
3)因此在数据库中添加名为slug的附加列.下面是您更新的产品数据库结构(仅作为示例).

Columns                       Values

id (int(11), PK)              1
title (varchar(1000))         Apple iPhone 5S 16GB
slug (varchar(1000))          apple-iphone-5S-16GB-brand-new
price (varchar(15))           48000
thumbnail (varchar(255))      apple-iphone-5S-16GB-brand-new.jpg
description (text)            blah blah
...
...

我之前也回答了slu.检查它是否有帮助.
How to remove params from url codeigniter

编辑:

为此,您必须在下面进行更改 –

1)创建2个表格以下

slug_table:

id (PK)   |    slug    |   category_id (FK)


category_table:

id (PK)   |  title  |  thumbnail  |  description

2)config / routes.php

$route['/(:any)'] = "category/index/$1";

3)models / category_model.php(创建新文件)

class Category_model extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
        $this->db = $this->load->database('default',true);
    }

    public function get_slug($slug)
    {
        $query = $this->db->get_where('slug_table', array('slug' => $slug));

        if($query->num_rows() > 0)
            return $query->row();
        return false;
    }

    public function get_category($id)
    {
        $query = $this->db->get_where('category_table', array('id' => $id));

        if($query->num_rows() > 0)
            return $query->row();
        return false;
    }
}

4)controllers / category.php(创建新文件)

class Category extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('category_model');
    }

    public function index($slug)
    {
        $sl = $this->category_model->get_slug($slug);

        if($sl)
        {
             $data['category'] = $this->category_model->get_category($sl->category_id);
             $this->load->view('category_detail', $data);
        }
        else
        {
             // 404 Page Not Found
        }
    }
}

5)views / category_detail.php(创建新文件)

<label>Category title: <?php echo $category->title; ?></label><br>
</label>Category description: <?php echo $category->description; ?></label>

标签:wordpress,php,codeigniter,magento,slug
来源: https://codeday.me/bug/20190716/1476972.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有