本地部署HMVC CodeIgniter项目遇ERR_TOO_MANY_REDIRECTS错误求助
解决HMVC CodeIgniter本地部署出现ERR_TOO_MANY_REDIRECTS的问题
Hey there, sorry to hear you're stuck with the ERR_TOO_MANY_REDIRECTS issue on your local HMVC CodeIgniter setup. Let's break down the possible causes and fixes based on what you've shared.
错误截图
你的.htaccess配置代码
RewriteEngine On Options +FollowSymLinks Options -Indexes RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule . index.php [L,QSA] #RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
核心问题分析与修复
1. .htaccess中的无效重定向规则(最可能的原因)
你.htaccess最后一行的RewriteRule是未注释的,但对应的RewriteCond被注释掉了。这条规则会让服务器把所有请求重定向到完全相同的URL,直接造成无限重定向循环,这就是ERR_TOO_MANY_REDIRECTS的直接诱因。
修复方式:
- 如果你不需要www相关的重定向,直接删除最后一行
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]; - 如果确实需要强制www跳转,取消上方
RewriteCond的注释并修正规则(本地环境一般不需要,建议直接移除):RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
2. CodeIgniter基础配置检查
- 确认base_url设置:打开
application/config/config.php,确保$config['base_url']填写正确的本地项目地址,比如http://localhost/你的HMVC项目名/。如果留空或填写错误,CodeIgniter生成的URL会引发重定向问题。 - 检查index_page配置:同样在
config.php中,确保$config['index_page'] = '';。因为你的.htaccess已经处理了index.php的重写,这里留空才能避免URL冲突。
3. 服务器模块与缓存问题
- 启用mod_rewrite:如果你用XAMPP/WAMP等本地服务器,需确认mod_rewrite模块已开启。打开Apache的
httpd.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so,移除开头的#后重启Apache。 - 清除浏览器缓存:由于你配置了301永久重定向(哪怕是错误的),浏览器会缓存这个规则。建议用无痕模式测试,或手动清除浏览器缓存后再尝试访问。
4. HMVC模块路由检查
部分自定义的模块路由规则可能意外造成循环重定向。检查各个模块下的routes.php文件,确保路由规则没有指向自身或形成循环跳转。
内容的提问来源于stack exchange,提问作者İsmail Berkay Kara
相关产品推荐
相关产品推荐

