CodeIgniter项目本地部署遇ERR_TOO_MANY_REDIRECTS错误求助
解决CodeIgniter本地访问重定向过多问题
1. 修复.htaccess的重定向规则
你的.htaccess规则是引发无限循环的核心原因:
- 第一条规则会将端口80的所有请求重定向到
http://localhost/chuksb2b/$1,但当你已经访问该路径时,规则会反复触发,形成循环。 - 最后一行的
Redirect 301规则会将项目内的xmlrpc.php强制跳转到127.0.0.1根目录,进一步干扰正常访问。
替换为适合本地开发的.htaccess内容(适配CodeIgniter 3.x):
<IfModule mod_rewrite.c> RewriteEngine On # 跳过真实存在的文件和目录 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 将请求转发到index.php处理 RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
如果是CodeIgniter 2.x版本,将最后一行改为RewriteRule ^(.*)$ index.php?/$1 [L]即可。
2. 精简config.php配置
你的config.php中存在冗余的base_url生成代码,且缺少关键的index_page配置,调整如下:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); $config['modules_locations'] = array( FCPATH . 'modules/' => '../../modules/' ); ob_start(); // 直接设置本地base_url,删除自动生成的冗余代码 $config['base_url'] = "http://localhost/chuksb2b/"; // 清空index_page,配合.htaccess去掉URL中的index.php $config['index_page'] = ''; $config['per_page'] = 5; // Other configurations... // Remaining configurations...
3. 排查其他潜在重定向触发点
- 路由规则:打开
application/config/routes.php,检查是否存在自定义路由将某个路径指向自身,导致循环跳转。 - 控制器代码:检查项目控制器文件,确认是否有错误使用
redirect()函数的情况(比如首页控制器无限重定向到自身)。 - Cookie/Session配置:在config.php中确保Cookie配置适配本地环境:
$config['cookie_domain'] = ''; $config['cookie_path'] = '/'; - 数据库连接:虽然重定向问题通常与数据库无关,但错误的数据库配置可能导致页面异常跳转,确保
application/config/database.php中的用户名(默认root)、密码(默认空)、数据库名与本地XAMPP的MySQL一致。
4. 清除浏览器缓存
浏览器缓存的旧重定向规则可能残留影响,直接清除当前网站的Cookie和缓存,或使用无痕模式访问测试。
内容的提问来源于stack exchange,提问作者Codewith chuks
相关产品推荐
相关产品推荐

