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

CodeIgniter redirect助手跳转异常:URL重复拼接问题求助

解决CodeIgniter控制器内跳转URL重复拼接问题

问题核心原因

URL重复拼接是因为base_url配置不完整或跳转时未使用框架提供的绝对路径生成方法,导致redirect()函数解析相对路径时出现错误拼接。

具体解决步骤

1. 修正base_url配置

打开application/config/config.php文件,找到$config['base_url']项,设置为项目根目录的绝对URL,注意末尾要加斜杠:

$config['base_url'] = 'http://localhost/ajaxTutorial/';

2. 使用site_url生成正确跳转地址

首先确保加载URL助手,然后用site_url()生成标准路径,避免相对路径错误:

  • 在控制器构造函数中加载URL助手:
public function __construct()
{
    parent::__construct();
    $this->load->library('form_validation');
    $this->load->model('welcome_model', 'model');
    $this->load->helper('url'); // 新增加载URL助手
}
  • 修改dashboard方法中的跳转代码:
public function dashboard()
{
    if (!isset($_SESSION['username'])) {
        redirect(site_url('welcome/index'));
        // 更简洁写法(index是默认方法):redirect(site_url('welcome'));
    } else {
        echo "welcome";
    }
}

3. 备选方案:直接使用绝对路径跳转

如果不想依赖site_url,也可以直接写完整的相对根路径:

redirect('/ajaxTutorial/welcome/index');

额外优化建议

  • 登录逻辑判断存在错误:if (!isset($modelData))应该改为if ($modelData)(假设模型login方法验证成功返回用户数据,失败返回空/false),否则登录成功时无法正确设置Session。
  • 建议使用CodeIgniter内置Session类替代原生$_SESSION,例如:$this->session->set_userdata('logged_in', TRUE);,使用前需加载Session库:$this->load->library('session');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 01:27:37