Codeigniter – SEO-URL-структура URL-адресов (реализация слизней)

Я хочу создать веб-сайт в рамках codeigniter, в котором я могу получить доступ к любой веб-странице через slug.

Например, как и WordPress и Magento, мы можем получить доступ к странице категории по адресу www.sitename.com/category_type/category_detailpage

а также мы можем получить доступ к этому элементу Category_detail непосредственно, добавив его в slug после основного URI: www.sitename.com/category_detailpage.

Поэтому мой вопрос заключается в том, что мне нужно разработать схему таблицы slug в базе данных, если у вас есть какой-либо примерный код проекта для этого каталога Slug в Codeigniter, чем, пожалуйста, сообщите мне как можно скорее.

Заранее спасибо!

Как использовать слизню?

Объясним на примере:
URLhttp://www.example.com/products/apple-iphone-5S-16GB-brand-new/

1) Предполагая, что у вас есть страница продукта, а на странице продукта на выходных вам нужны некоторые данные из URL-адреса, чтобы понять, какой продукт отображать.
2) Прежде чем мы запрашивали нашу базу данных, используя идентификатор, который мы получаем из URL. Но теперь мы сделаем то же самое (обращаясь к нашей базе данных), просто заменив id на slug, и вот оно!
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 ... ... 

Я также ответил на слизню раньше. Проверьте, помогает ли это.
Как удалить params из 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) контроллеры / 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>