簡體   English   中英

Codeigniter - SEO友好的URL結構(Slug實現)

[英]Codeigniter - SEO Friendly URL Structure (Slug Implementation)


我想在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。 檢查它是否有幫助。
如何從url codeigniter中刪除params


編輯:

為此,您必須在下面進行更改 -

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM