您可以使用 url 段进行帖子查找。(这些my-first-post
就像通常称为 slug 的字符串)。您必须预先生成这些并将它们与帖子一起保存。
您可以使用路由配置$route['404_override']
将每个其他不可路由的路径定向到控制器。设置完成后,您将必须使用博客帖子的参数进行查询,如果找到,则为帖子内容提供服务,如果没有,则发送常规 404。像这样:
// application/config/routes.php
$route['404_override'] = 'blog/show_post'; // controller/action
// application/controllers/blog.php
class Blog extrends CI_Controller {
public function show_post() {
// get the first segment, the "first-post" from http://example.com/first-post
$slug = $this->uri->segment(0);
$post = $this->posts->find_by_slug($slug); // imaginary posts model with db query
if (!$post) { // if the post not found by slug
show_404(); // return 404 as usual
} else {
$this->load->view('blog/show', array($post)); // post found, display it
}
}
}