php - 在 codeigniter 中使用 slug

标签 php codeigniter slug clean-urls

我听说有人使用 slugs 来生成干净的 url。我不知道它是如何工作的。 目前我有一个 codeigniter 站点,它生成这样的 url

www.site.com/index.php/blog/view/7

据我所知,通过维护 slug 字段可以实现类似的 url

www.site.com/index.php/blog/view/once-upon-a-time

这是怎么做到的?特别是在引用 codeigniter 时?

最佳答案

我只是将 slug 存储在我的数据库表中,在一个名为 slug 的列中,然后找到一个带有 slug 的帖子,如下所示:

public function view($slug)
{
    $query = $this->db->get_where('posts', array('slug' => $slug), 1);

    // Fetch the post row, display the post view, etc...
}

此外,要轻松地从您的帖子标题中导出别名,只需使用 url_title() URL 助手的:

// Use dashes to separate words;
// third param is true to change all letters to lowercase
$slug = url_title($title, 'dash', true);

一点好处:您可能希望对 slug 列实现一个唯一的键约束,以确保每个帖子都有一个唯一的 slug,这样 CodeIgniter 应该寻找哪个帖子就不会模棱两可了。当然,您可能应该首先为您的帖子提供唯一的标题,但将其设置到位可以强制执行规则并防止您的应用程序搞砸。

关于php - 在 codeigniter 中使用 slug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3305786/

相关文章:

javascript - reCAPTCHA 和 JS 表单验证

javascript - 使用标签在 url 上添加 GET 参数

javascript - Codeigniter:仅在第一个模式框上调用 Ajax

php - MySQL 数据库中带有 Codeigniter 和 Bootstrap 的下拉菜单

python - 属性错误;按类别问题列出的图表列表的动态 url(查询集过滤器)

wordpress - 如何使用 wp_insert_post 在 wordpress 中设置 POST 永久链接/slug

PHP MySQL 管理

php - WordPress:wp_enqueue_style 不工作

mysql - 代码点火器 : A Database Error Occurred SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

PHP/正则表达式 : "linkify" blog titles