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

CodeIgniter控制器方法访问出现404错误求助

解决CodeIgniter中capturista/alta路径404的问题

你的问题核心出在路由配置上,我来帮你一步步梳理和解决:

问题根源

你在routes.php里只配置了:

$route['capturista'] = 'CapturistaCtrl';

这条规则仅匹配http://localhost/captura/capturista(对应控制器的index()方法),但当你访问capturista/alta时,CodeIgniter会默认尝试寻找名为Capturista的控制器(注意缺少你自定义的Ctrl后缀)并调用它的alta()方法——而你并没有这个控制器,所以返回404错误。

解决方案

方案1:添加通配符路由(推荐)

修改routes.php,补充一条能匹配capturista下所有方法的规则:

$route['capturista'] = 'CapturistaCtrl'; // 保留原有的index路由
$route['capturista/(:any)'] = 'CapturistaCtrl/$1'; // 匹配所有子路径

(:any)是CodeIgniter的路由占位符,会把URL中capturista/后面的部分作为参数传递给CapturistaCtrl对应的方法,这样capturista/alta就会正确映射到CapturistaCtrl->alta(),后续新增其他方法也无需重复配置路由。

方案2:单独添加特定方法的路由

如果你只想为alta方法配置路由,可以单独添加:

$route['capturista/alta'] = 'CapturistaCtrl/alta';

这种方式适合需要精确控制少数路径的场景,但灵活性不如通配符方案。

方案3:直接使用控制器全名访问(无需修改路由)

如果你暂时不想调整路由,也可以直接通过控制器的完整类名访问:

http://localhost/captura/CapturistaCtrl/alta

这条URL会直接匹配到你的CapturistaCtrl控制器的alta()方法,不过URL不够简洁友好。

额外配置验证

再确认下你的其他配置(看起来已经没问题,但检查下更稳妥):

  • .htaccess的RewriteBase /captura/和RewriteRule规则正确,能正常去掉URL中的index.php
  • config.php中的base_url和index_page配置正确,没有多余的后缀

调整后,capturista/alta应该就能正常输出"alta"了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:06:31