Azure App Service中PHP CodeIgniter出现404 Not Found - nginx/1.24.0错误
解决Azure App Service上CodeIgniter应用的nginx 404 Not Found问题
环境信息
- 平台:Azure App Service
- Web服务器:nginx/1.24.0
- 框架:PHP CodeIgniter
已执行的排查步骤
- 检查应用日志:未发现与404问题相关的特定错误
- 验证部署:所有文件均在对应位置,近期无变更操作
- 检查nginx配置:无改动,配置看似正确
- 重启服务:尝试重启Azure App Service,但问题仍存在
- Azure诊断:未报告异常资源使用情况或错误
进一步排查与修复建议
1. 检查CodeIgniter路由配置
- 确认
application/config/routes.php中的默认路由是否正确设置,比如默认控制器和方法:$route['default_controller'] = 'Home'; $route['404_override'] = ''; - 排查自定义路由是否存在语法错误、正则表达式匹配错误或路由冲突情况
2. 验证nginx的URL重写规则
- 即使未手动改动nginx配置,Azure App Service可能自动更新基础配置,检查站点根目录下的
.nginx.conf或对应nginx配置文件,确保包含CodeIgniter所需的重写规则:location / { try_files $uri $uri/ /index.php$is_args$args; } - 若存在
/.htaccess文件,确认nginx配置中已开启allowoverride all,保证重写规则能被正确解析
3. 检查Azure App Service路径映射设置
- 进入Azure门户的App Service → 配置 → 路径映射,确认虚拟应用程序的路径配置是否正确,避免因路径映射错误导致请求无法到达CodeIgniter入口文件
4. 验证CodeIgniter基础URL与PHP环境
- 检查
application/config/config.php中的base_url是否与当前App Service域名完全匹配:$config['base_url'] = 'https://your-app-name.azurewebsites.net/'; - 确认Azure App Service的PHP版本与CodeIgniter版本兼容(如CodeIgniter 3.x需PHP 5.6+,CodeIgniter 4.x需PHP 7.4+)
5. 排查静态资源路径问题
- 若仅静态资源(CSS、JS、图片等)出现404,核对页面引用路径与资源实际存储路径是否一致,避免相对路径错误导致加载失败
6. 清理临时文件并重启服务
- 通过Azure门户的App Service → 开发工具 → 高级工具进入Kudu控制台,执行命令清理临时缓存文件:
rm -rf /home/site/wwwroot/tmp/* rm -rf /home/site/wwwroot/application/cache/* - 清理完成后再次重启App Service,尝试访问应用
内容的提问来源于stack exchange,提问作者atul kumar
相关产品推荐
相关产品推荐

