Ubuntu下Nginx部署CodeIgniter登录后404错误解决方法咨询
修复CodeIgniter项目Nginx登录后404错误的方案
核心问题原因
CodeIgniter作为MVC框架,登录后的请求属于动态路由(并非真实存在的文件/目录),你的Nginx配置中location /规则会直接返回404,而非将请求转发给框架入口文件index.php处理。
具体修复步骤
1. 修改Nginx虚拟主机配置
编辑你的Nginx站点配置文件,将location /区块替换为以下内容:
location / { try_files $uri $uri/ /index.php$is_args$args; }
这个规则的作用是:先尝试访问真实存在的文件或目录,若不存在则将请求转发到index.php,由CodeIgniter框架处理路由。
2. 检查并修正CodeIgniter的config.php配置
打开项目根目录下的application/config/config.php,确保以下配置正确:
- 设置
index_page为空,移除URL中的index.php后缀:$config['index_page'] = ''; - 确认
base_url配置正确(你的现有配置基本没问题,若站点有子目录需调整,但当前场景下无需修改)。
3. 验证项目文件权限
确保Nginx运行用户(通常是www-data)对项目目录有足够权限,尤其是application/cache、application/logs这些需要写入的目录:
sudo chown -R www-data:www-data /var/www/hrms.fs/html sudo chmod -R 755 /var/www/hrms.fs/html sudo chmod -R 777 /var/www/hrms.fs/html/application/cache /var/www/hrms.fs/html/application/logs
4. 重启Nginx服务
配置修改后,重启Nginx使设置生效:
sudo systemctl restart nginx
内容的提问来源于stack exchange,提问作者mastewal tekile
相关产品推荐
相关产品推荐

