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

CodeIgniter3 URL跳转异常:设置base_url后链接仍跳转到未定义地址

解决CodeIgniter3 URL重定向异常问题

1. 排查路由配置(application/config/routes.php)

  • 检查是否存在强制导向/dashboard/的路由规则,比如全局覆盖路由:
    $route['(:any)'] = 'dashboard/$1';
    
    这类规则会将所有请求重定向到dashboard控制器。同时确认default_controller是否被设为dashboard,若URL匹配不到对应控制器方法,系统会自动跳转到默认控制器。

2. 检查.htaccess重写规则

如果使用Apache服务器的URL重写,确保根目录下的.htaccess规则正确,没有强制重定向逻辑:

RewriteEngine On
# 若项目在/site/子目录下,需添加此行
RewriteBase /site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

错误的重写规则可能导致请求被错误转发到dashboard路径。

3. 确认base_url与index_page配置

在application/config/config.php中确保配置正确:

$config['base_url'] = 'http://localhost:8056/site/';
$config['index_page'] = '';

注意base_url末尾必须带斜杠,否则生成的站点链接会出现拼接错误;index_page设为空是为了配合URL重写隐藏index.php。

4. 检查控制器中的重定向代码

查看相关控制器(比如User控制器或基础父控制器)的构造函数或方法内,是否存在强制跳转代码:

public function __construct()
{
    parent::__construct();
    // 排查是否有类似强制跳转逻辑
    redirect('dashboard');
}

这类代码会导致控制器下所有方法被访问时,自动跳转到dashboard。

5. 验证会话与权限逻辑

如果项目包含登录验证、权限控制代码,检查是否存在验证失败时强制跳转到dashboard的逻辑:

if (!$this->session->userdata('logged_in')) {
    redirect('dashboard');
}

这种情况需确认会话状态是否正常,或权限验证逻辑是否误判了当前请求的合法性。

6. 清除缓存

  • 删除application/cache/目录下的所有缓存文件
  • 清空浏览器缓存,或使用无痕模式测试,避免旧重定向规则被缓存影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:42:07