【问题标题】:Friendly URLs and allowing users to have control over them友好的 URL 并允许用户控制它们
【发布时间】:2012-06-23 21:37:40
【问题描述】:

我有一个带有 CMS 的 CI 应用程序,我一直想知道如何让用户控制他们将发布的博客文章的 URL。我了解 routes.php 文件,但我只是想知道如何允许用户将 url 更改为他们想要的东西?我以前没有这样做过,所以我不确定如何在 CI 中做到这一点。

提前致谢

【问题讨论】:

  • 到目前为止你尝试过什么?如果可能,您是否研究过codeigniter?你知道如何制作自己的 MVC 框架吗?您的问题不清楚,我们会解决具体问题并尽量远离关于 SO 的意见。请重新格式化您的问题,您可能会取得更大的成功...

标签: php codeigniter friendly-url


【解决方案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));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 2019-08-02
      • 2015-01-21
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 2016-08-18
      相关资源
      最近更新 更多