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

CodeIgniter页面重定向问题:数据插入成功但跳转失败

解决CodeIgniter数据插入后重定向失败的问题

嘿,作为CodeIgniter新手遇到这种“数据插进去了但页面跳不动”的情况真的挺闹心的,不过别慌,咱们从报错信息入手一步步排查:The requested URL /code/display was not found on this server 本质是服务器找不到你指定的这个路径,大概率是重定向的写法或者路由配置出了问题,下面是几个关键排查点:

1. 先检查重定向的写法是否符合CodeIgniter规范

CodeIgniter有专门的redirect()函数来处理页面跳转,新手最容易犯的错就是直接写服务器根路径,而不是用框架的路由格式:

  • 首先要确保你加载了URL辅助函数,要么在控制器的构造函数里全局加载,要么在跳转的方法里临时加载:
    // 在构造函数里全局加载
    public function __construct() {
        parent::__construct();
        $this->load->helper('url'); // 加上这行
    }
    
  • 然后重定向的时候要写控制器/方法的格式,而不是直接写/code/display。比如如果你的display方法在Home控制器里,正确的写法是:
    // 跳转到Home控制器的display方法
    redirect('home/display');
    
    如果你硬要使用/code/display这个路径,那得在路由里做映射,后面会说。

2. 确认路由配置是否正确

打开application/config/routes.php,看看有没有对应路由规则:

  • 如果想让/code/display这个URL指向Home控制器的display方法,需要在路由文件里添加:
    $route['code/display'] = 'home/display';
    
  • 要是没配置自定义路由,那默认的访问路径就是控制器名/方法名,也就是home/display,这时候直接用redirect('home/display')就可以了。

3. 检查URL重写的.htaccess配置(如果开启了去掉index.php)

如果你为了美化URL去掉了index.php,那得确保根目录的.htaccess文件配置正确,不然服务器会解析错路径:
标准的CodeIgniter .htaccess配置大概是这样的:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

另外还要确认你的Apache服务器已经开启了mod_rewrite模块哦。

4. 确认目标方法存在

最后别忘了检查Home控制器里有没有display方法,比如:

public function display() {
    // 这里写display页面的逻辑,比如加载对应的视图
    $this->load->view('display_view');
}

先从第一点开始排查,这是新手最容易踩的坑——用了服务器绝对路径而不是框架的路由格式,应该就能解决问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:09:49