gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:41 25 4
gpt4 key购买 nike


我想在 codeigniter 框架中开发一个网站,我可以在其中通过 slug 访问任何网页。

例如,就像 WordPress 和 Magento 一样,我们可以通过 www.sitename.com/category_type/category_detailpage

访问类别页面,我们也可以通过在主 URI www.sitename 之后添加其 slug 直接访问 Category_detail。 com/category_detailpage.

所以我的问题是,如果您在 Codeigniter 中有任何关于此 Slug 目录的案例研究项目代码,我必须如何设计数据库中的 slug 表模式,请尽快告诉我。

提前致谢!

最佳答案

如何使用 slug?

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

1) 假设您有一个产品页面,当然产品页面需要一些来自 URL 的数据来了解要显示的产品。
2) 在我们使用从 URL 获取的 id 查询数据库之前。但现在我们将做同样的事情(查询我们的数据库),只需将 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
...
...


我之前也回答过slug。检查是否有帮助。
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>

关于php - Codeigniter - SEO 友好的 URL 结构(Slug 实现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25801084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com