用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2329|回复: 2
收起左侧

[Others] 2.2的升级3.0,本地域名命名需注意

[复制链接]
发表于 2015-4-21 23:25:24 | 显示全部楼层 |阅读模式
本帖最后由 yadgen 于 2015-4-22 08:49 编辑

例域名是:local.aaa_bbb.com
system/core/Config.php,93行,代码如下:
PHP复制代码
 
if (isset($_SERVER['HTTP_HOST']) && preg_match('/^((\[[0-9a-f:]+\])|(\d{1,3}(\.\d{1,3}){3})|[a-z0-9\-\.]+)(:\d+)?$/i', $_SERVER['HTTP_HOST']))
 
复制代码

这里判断始终为FALSE,导致返回的$base_url = 'localhost';3.0在域名判断上严谨了。

因为2.2的判断规则是:
PHP复制代码
 
if (isset($_SERVER['HTTP_HOST']))
 
复制代码

发表于 2015-4-22 10:10:47 | 显示全部楼层
问题在于aaa_bbb.com并非容许的Internet Domain名字。'_'出了问题!

参看preg_match码,'_'不在其中,当然是false。

算是谁的bug?

评分

参与人数 1威望 +2 收起 理由
Closer + 2 正解

查看全部评分

 楼主| 发表于 2015-4-23 13:15:25 | 显示全部楼层
燃雲 发表于 2015-4-22 10:10
问题在于aaa_bbb.com并非容许的Internet Domain名字。'_'出了问题!

参看preg_match码,'_'不在其中,当然 ...

后面修改了问题类型,不算框架bug。
在实际情况中,因为团队人多,你不知道你的开发人员会用什么样的域名本地化,我遇见到了这个问题,就看了下。

本版积分规则