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

CakePHP 2.6.2静态资源加载及URL跳转异常排查与解决

解决CakePHP 2.6.2在Ubuntu 16.04下的资源加载、路由及Session异常问题

最近在Ubuntu 16.04环境部署CakePHP 2.6.2项目,已经做好了这些准备工作:启用了mod_rewrite,还把PHP版本从7降级到了5.6,但还是遇到了几个棘手的问题:

  • 静态资源(CSS、JS)无法正常加载:比如页面里引入的<script src="/admin/plugins/jQuery/jQuery-2.1.4.min.js"></script>,系统没有自动拼接项目文件夹名称,导致资源路径错误返回404
  • URL必须带index.php才能访问,同时Session功能完全失效:直接访问不带index.php的地址会报错,而且用户会话根本无法保存
  • 重定向路径异常:使用$this->redirect('/notifications/index/')跳转时,生成的地址是localhost/notifications/index/,而不是预期的localhost/projectfolder/notifications/index/

最终解决方案

排查了一圈才发现,问题根源是Apache没有加载项目中的.htaccess文件。只需要在虚拟主机的配置块里添加AllowOverride All,然后重启Apache服务,所有问题就都解决了。

补充说明:CakePHP依赖.htaccess来实现URL重写、路径自动拼接等核心功能,Apache默认的AllowOverride None会阻止加载.htaccess,直接导致路由规则、资源路径处理全部失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:24:25