在CodeIgniter中创建类似于CNN文章URL的URL


Creating URL like CNN Article URL in CodeIgniter

我需要在CodeIgniter中创建一个与CNN文章URL格式有点相似的URL格式。

http://edition.cnn.com/2012/08/17/world/asia/australia-assange-asylum-ecuador/index.html?hpt=hp_c2

有趣的部分当然是年/月/日/section_name/article_name。我能够重新创建测试日期,最终得到了这种 url:

http://localhost/myapplication/index.php/2012/08/17/1

其中最后一个"1"是文章 ID。

问题是我的控制器的视图函数只需要第 4 个参数(文章 ID)来检索文章,而忽略所有其他参数。因此,2014/06/11/1 将生成相同的页面,因为文章 ID 相同。

我想到的是,我可以在我的视图函数中检索文章日期(因为我无论如何都要从数据库中检索文章数据),并根据 URL 仔细检查它以确保 URL 的日期有效。我只是想知道这是否是正确的做法,因为我最终将不得不对章节标题和文章标题做同样的事情......

好的,我想现在我明白了,你的意思。

您创建 url,然后通过 id 从数据库中获取文档,如果使用 slug,则获取更多 SEF。如果您将日期存储为 mysql 中的日期类型(如果您使用的是 mysql),那么在 sql 查询和其他所有条件(如节名)中编写它也会更容易。