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

同一域名下独立目录部署CodeIgniter新项目的配置问题

嘿,这种在同一服务器下部署多个CodeIgniter项目的需求很常见,我帮你梳理下完整的配置步骤,确保app2能正常通过子路径访问:

1. 先确认基础依赖与权限
  • 首先得确保你的服务器开启了mod_rewrite模块——这是CodeIgniter实现伪静态路由的核心,大部分商用主机默认是开启的,如果不确定,你可以查看phpinfo里的rewrite模块状态,或者联系主机商确认。
  • 检查app2文件夹及其子目录的权限,一般设置为文件夹755、文件644就可以,避免因为权限不足导致无法加载文件。
2. 配置app2的base_url参数

打开app2/application/config/config.php,找到base_url配置项,修改为:

$config['base_url'] = 'http://website.com/app2/';

注意末尾的斜杠一定不能少,这样CodeIgniter才能正确生成项目内的链接资源。

3. 给app2目录配置专属的.htaccess

在app2文件夹的根目录下创建(或修改).htaccess文件,写入以下规则:

RewriteEngine On
RewriteBase /app2/

# 直接放行真实存在的文件或目录
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# 将所有请求转发到app2的index.php处理
RewriteRule ^(.*)$ index.php/$1 [L]

这个配置会把http://website.com/app2/xxx这类请求,全部转发到app2项目的index.php,让CodeIgniter的路由系统处理。

4. 检查主目录的.htaccess(避免冲突)

如果你的根目录(public_html)已经有一个.htaccess来处理主CI项目,只要它的规则是常规的伪静态配置,就不会影响app2的访问。常规的主目录.htaccess内容如下:

RewriteEngine On
RewriteBase /

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

因为Apache会优先使用子目录下的.htaccess规则,所以当访问/app2/开头的路径时,会自动用app2里的配置,不用额外修改主目录的规则。

最后测试验证

完成以上配置后,访问http://website.com/app2/或者具体的控制器路径(比如http://website.com/app2/welcome),如果能正常加载app2的页面,就说明配置成功了。如果遇到404或500错误,可以排查:

  • mod_rewrite是否真的开启
  • 主机是否允许.htaccess生效(需要虚拟主机配置里开启AllowOverride All)
  • base_url是否设置正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:48:37