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

CodeIgniter 4如何修改文件夹路径 实现新旧站点分路径访问

在CodeIgniter 4框架下完全可以实现该路径调整需求,不需要重构旧站点业务代码,具体操作步骤如下:

实现步骤

1. 目录结构调整

  • 在CI4项目的public目录下新建名为2021的文件夹,将原有旧站点的全部代码文件迁移到该文件夹内,确保旧站点入口文件路径为public/2021/index.php
  • 新站点代码保持原有CI4目录结构不变,入口文件仍保留在public/index.php位置

2. Web服务器规则配置

核心逻辑是让/2021开头的请求优先被旧站点处理,不经过CI4的路由转发,分两种常用服务器环境配置:

Apache环境

找到public目录下的.htaccess文件,在所有重写规则的最前面新增如下配置:

# 2021路径请求直接交由旧站点处理,不走CI4路由
RewriteCond %{REQUEST_URI} ^/2021/
RewriteRule ^(.*)$ $1 [L]

旧站点自身原有的伪静态规则,直接放在public/2021目录下的.htaccess文件中即可,和新站点规则互不冲突。

Nginx环境

在站点对应的server配置块中,在CI4通用路由规则之前新增如下匹配规则:

# 优先匹配2021路径下的旧站点请求
location ^~ /2021/ {
    root 替换为你的项目实际绝对路径/public;
    index index.php index.html;
    # 此处直接复用旧站点原有伪静态规则即可
    try_files $uri $uri/ /2021/index.php?$query_string;

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000; # 替换为实际的php-fpm监听地址
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

# 原有新站点的CI4配置保留在下方即可
location / {
    root 替换为你的项目实际绝对路径/public;
    index index.php index.html;
    try_files $uri $uri/ /index.php?$query_string;
    # 其余原有CI4的PHP解析、缓存配置保持不变
}

配置完成后重载Nginx服务生效。

3. 兼容性校验

  • 访问根域名确认新站点所有页面功能正常
  • 访问/2021路径确认旧站点页面、静态资源(JS/CSS/图片)、交互接口无404报错

注意:如果旧站点代码中存在写死的根路径引用(比如/static/js/common.js这种以单斜杠开头的绝对路径),需要批量替换为/2021/static/js/common.js格式,避免资源请求被转发到新站点目录。如果旧站点全部使用相对路径引用资源,可跳过该步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:21:26