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
相关产品推荐
相关产品推荐

