Codeigniter页面链接跳转至仪表盘而非Login控制器问题求助
解决CodeIgniter中Login链接跳错页面的问题
嘿,刚入门Web开发和CodeIgniter很正常,遇到这种跳转问题别慌,咱们一步步排查:
- 先修正链接的写法
CodeIgniter不推荐直接硬写相对路径,因为容易受当前页面URL、base_url配置影响。把你的链接改成用框架自带的site_url()函数生成,这样能保证路径绝对正确:
<li class="nav-item"> <a class="nav-link js-scroll-trigger" href="<?php echo site_url('Login'); ?>">Login</a> </li>
记得要确保你已经加载了URL辅助函数,如果没加载,可以在控制器的__construct里加一句$this->load->helper('url');,或者在application/config/autoload.php里把url辅助函数加入自动加载列表。
- 检查Login控制器的默认方法
你的控制器代码看起来没写完,CodeIgniter默认会调用控制器里的index()方法。你得确认Login控制器里的index()方法是正确加载登录视图,而不是跳转到仪表盘:
<?php class Login extends CI_Controller{ function __construct(){ parent::__construct(); // 这里可以加载需要的辅助函数或模型,比如url、form等 $this->load->helper('url'); } // 必须要有这个默认方法 public function index() { // 加载登录视图,这里要确保你的登录视图文件存在于application/views/目录下,比如login.php $this->load->view('login'); // 千万不要在这里写redirect('dashboard')之类的跳转代码,不然点链接就会直接跳走 } }
- 排查路由配置
去application/config/routes.php文件里看看,有没有错误的路由规则把Login指向了仪表盘。比如有没有类似下面的代码:
$route['Login'] = 'dashboard';
如果有的话,删掉这条错误配置,或者改成正确的指向Login控制器。
- 检查base_url的配置
打开application/config/config.php,确认$config['base_url']已经正确设置成你的网站根地址,比如:
$config['base_url'] = 'http://localhost/your_ci_project/';
如果base_url没设置,site_url()生成的路径会出错,导致跳转异常。
- 检查URL重写的.htaccess(如果用了的话)
如果你为了去掉URL里的index.php而配置了.htaccess,确保它的规则是正确的,比如:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
错误的重写规则可能会导致控制器名称被解析错误,从而跳转到错误的页面。
内容的提问来源于stack exchange,提问作者Jolzal
相关产品推荐
相关产品推荐

