友好的 URL 并允许用户控制它们
Posted
技术标签:
【中文标题】友好的 URL 并允许用户控制它们【英文标题】:Friendly URLs and allowing users to have control over them 【发布时间】:2012-06-23 21:37:40 【问题描述】:我有一个带有 CMS 的 CI 应用程序,我一直想知道如何让用户控制他们将发布的博客文章的 URL。我了解 routes.php 文件,但我只是想知道如何允许用户将 url 更改为他们想要的东西?我以前没有这样做过,所以我不确定如何在 CI 中做到这一点。
提前致谢
【问题讨论】:
到目前为止你尝试过什么?如果可能,您是否研究过codeigniter?你知道如何制作自己的 MVC 框架吗?您的问题不清楚,我们会解决具体问题并尽量远离关于 SO 的意见。请重新格式化您的问题,您可能会取得更大的成功... 【参考方案1】:我怀疑你的意思是像 wordpress 中的帖子的标题,所以标题成为 URL 的一部分?
您需要在application/config/routes.php中为控制器设置自定义路由,例如
$route['posts/(:any)'] = "posts/posts_method/$1";
Posts_method 是指使用给定变量搜索帖子的方法。
【讨论】:
【参考方案2】:我认为最好的方法是使用 URL Slug 来引用文章。 您可以插入文章的标题,然后为其设置 slug,这样当用户单击 slug 时,您应该使用 slug 在数据库中运行查询以搜索文章。
表格示例:
id_article
title
body
slug
示例表格:
Title: <input type="text" name="title">
Body: <textarea name="body"></textarea>
Slug: <input type="text" name="slug">
我们不假设这个条目是帖子:
Title: Hi, this is my first post!
Body: Wow i'm so happy
slug: my-awsome-post
当您创建指向帖子的链接时,您应该使用 slug 作为 id,例如:
<a href="http://www.example.com/blog/show/my-awsome-post">Read more</a>
当您在模型中运行查询时,您可以使用 where clausole the slug:
$this->db->get_where('table', array('slug'=>$slug));
【讨论】:
以上是关于友好的 URL 并允许用户控制它们的主要内容,如果未能解决你的问题,请参考以下文章