CI项目base_url返回[::1]而非localhost异常问题咨询
CI框架base_url返回[::1]异常解决方案
- 首先确认base_url硬编码配置是否正确,禁止留空使用框架默认的动态地址识别逻辑:
如果你使用CI3版本,打开application/config/config.php,修改配置项为:$config['base_url'] = 'http://localhost/你的项目名/';
如果你使用CI4版本,打开app/Config/App.php,修改配置项为:public $baseURL = 'http://localhost/你的项目名/';
框架默认动态识别逻辑会优先读取当前请求的IP地址,IPv6环境下会把环回地址[::1]识别为访问地址,导致输出异常,硬编码可以直接规避该问题。 - 排查你提到的触发异常的特定函数内部逻辑:
检索该函数内是否有主动覆盖base_url配置的代码,CI3对应代码为$this->config->set_item('base_url', 自定义值),CI4对应代码为config('App')->baseURL = 自定义值,如果存在此类逻辑调整对应值即可。
如果该函数涉及CLI调用、跨服务请求转发场景,会修改框架读取的当前请求IP,硬编码base_url同样可以覆盖该场景下的动态识别结果。 - 临时强制覆盖方案:
若无法定位到动态修改逻辑,可以直接在入口文件index.php加载框架核心前添加配置强制覆盖,CI3示例:$assign_to_config['base_url'] = 'http://localhost/你的项目名/';
内容的提问来源于stack exchange,提问作者Sumit Tiwari
相关产品推荐
相关产品推荐

