You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CodeIgniter中生成类似文章标题格式的URL?

好的,在CodeIgniter里实现这种SEO友好的文章URL其实很直观,分几个步骤来就行,我给你一步步拆解:

实现CodeIgniter友好文章URL的步骤

1. 先移除URL里的index.php(必备基础)

首先得让服务器支持URL重写,去掉默认的index.php前缀。如果你用Apache,在项目根目录创建.htaccess文件,内容如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

要是用Nginx,就在server配置块里添加这段规则:

location / {
    try_files $uri $uri/ /index.php?$args;
}

别忘了打开application/config/config.php,把$config['index_page']改成空字符串:

$config['index_page'] = '';

2. 配置自定义路由规则

打开application/config/routes.php,添加一条路由,把Blog/my-article-name.html格式的URL映射到你的控制器方法。假设你的控制器是Blog,加载文章的方法是single_view,路由规则可以这么写:

// 匹配以.html结尾的文章URL,捕获文章slug作为参数
$route['Blog/(:any)\.html'] = 'Blog/single_view/$1';

这里的(:any)会抓取URL里的文章slug(也就是URL友好的文章名称,比如my-article-name),并把它作为参数传递给single_view方法。

3. 修改控制器方法接收slug参数

在Blog.php控制器里,调整single_view方法,用slug从数据库查询对应文章:

public function single_view($slug) {
    // 加载模型并查询文章
    $this->load->model('Blog_model');
    $article = $this->Blog_model->get_article_by_slug($slug);
    
    // 没找到文章就返回404
    if (!$article) {
        show_404();
    }
    
    // 把文章数据传给视图
    $data['article'] = $article;
    $this->load->view('single_view', $data);
}

然后在你的Blog_model.php模型里,实现根据slug查询文章的方法:

public function get_article_by_slug($slug) {
    $this->db->where('slug', $slug);
    return $this->db->get('articles')->row();
}

这里要注意:你的文章表(比如articles)需要新增一个slug字段,用来存储URL友好的文章名称。创建文章时,可以用CodeIgniter自带的url_title函数生成slug:

// 示例:把原始标题转成slug
$original_title = "My Awesome Article";
$slug = url_title($original_title, 'dash', TRUE);
// 输出结果:my-awesome-article

4. 生成友好URL链接

在视图或控制器里,要生成www.example.com/Blog/my-article-name.html这种链接,用CodeIgniter的site_url或者anchor函数就行:

// 用site_url生成纯URL
echo site_url('Blog/' . $article->slug . '.html');

// 用anchor生成带文本的链接
echo anchor('Blog/' . $article->slug . '.html', $article->title);

这样一套流程下来,就能完美实现你想要的包含文章名称的友好URL了。如果遇到404问题,记得检查路由规则是否正确、.htaccess是否生效,还有数据库里的slug字段是否正确存储哦。

内容的提问来源于stack exchange,提问作者Fatih Ay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:13:46