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

如何在CodeIgniter中设置首页?子目录结构下的访问配置问题

我来帮你搞定这个问题!要让访问http://localhost/ci直接加载frontend目录下的Home控制器,主要需要调整路由配置和确保.htaccess正常工作,一步步来:

1. 补全并修正你的.htaccess文件

你的.htaccess内容不完整,直接替换成下面这个完整版本,放在CI的根目录(也就是localhost/ci对应的文件夹里):

RewriteEngine On
# 排除真实存在的文件和目录
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 把所有请求转发到index.php处理
RewriteRule ^(.*)$ index.php/$1 [L]

这个配置的核心是去掉URL里的index.php,让CI的路由规则能正常生效。

2. 修改路由配置,指定默认控制器

打开application/config/routes.php,找到$route['default_controller']这一行,把默认值改成你的子目录控制器路径:

$route['default_controller'] = 'frontend/home';

CodeIgniter默认只会在根目录的controllers文件夹里找默认控制器,所以必须明确指定子目录+控制器名(这里frontend是子目录,home是控制器文件名的小写)。

3. 确认控制器代码的正确性

检查controllers/frontend/Home.php的代码,确保类名和文件名匹配(CI对大小写有要求:文件名首字母大写,类名和文件名一致):

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Home extends CI_Controller {
    public function index() {
        // 加载对应的视图文件
        $this->load->view('frontend/home');
    }
}

这里的index方法是控制器的默认方法,当访问控制器时没有指定方法名,就会自动调用它,负责加载你写的home.php视图。

4. 最后检查几个关键点

如果设置完还是不行,排查这几个地方:

  • 确保服务器开启了mod_rewrite模块(Apache的话需要在httpd.conf里启用,Nginx用户要对应调整伪静态规则)
  • 打开application/config/config.php,确认base_url设置正确:$config['base_url'] = 'http://localhost/ci/';
  • 检查frontend子目录的权限,确保服务器能读取里面的控制器和视图文件

现在直接访问http://localhost/ci,应该就能自动加载你想要的前端首页了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:40:25