关于ZIHOST的说明

ZIHOST是千木万能建站系统里的一个常量,意思的子系统网址,最初被创造出来是因为uediter插件。因为网站启用多域名之后,其子系统域名就会与主系统域名不同,比如blog.qianmu.net和www.qianmu.net,造成引用文件的网址不统一,导致ueditor的一些图片上传功能不能使用。


于是ZIHOST被创造出来了,比如博客网站,对应的ZIHOST是http://blog.qianmu.net/,小说网站对应的ZIHOST是http://novel.qianmu.net/,QMHOST是全局根网址的意思,一般是http://www.qianmu.net/(在不需要多域名的情况下有QMHOST)就够了。现在在ueditor中把QMHOST替换成ZIHOST之后,ueditor的图片上传功能就能购正常使用了。前几天发现应用中心的qiamfont字体调用有问题,经常出现无法正常显示。于是大费周章去对ZIHOST的define进行修改,最后解决了。

//子域名 = 开启多域名?系统域名 :全局域名 HOST是指http(s)//域名
//子域名 = 开启多域名?“http://blog.qianmu.net” :“http://www.qianmu.net” HOST是指http:// + 域名
define('ZIHOST', MULTI_DOMAIN == 'on' ? Config::sysurl(SYS) : QMHOST);而昨天突然想到这两个问题的出现都是文件引用的网址跟当前网址不一致导致的,比如当前网址是http://www.qianmu.net/~~,<link>里面样式引用的网址是http://app.qianmu.net/~~,是这域名的不同才导致问题的出现,只要引用的网址和当前网址一样就没有问题。所以我想到ZIHOST的角色应该是当前根网址。

由此我发现,ZIHOST定义为当前根网址似乎更适合。

举个例子:全局网址QMHOST是http://www.qianmu.net/,访问博客网站,网址是http://www.qianmu.net/blog.php,此时ZIHOST是http://www.qianmu.net/。

开启多域名后,全局网址QMHOST是http://www.qianmu.net/,访问博客网站,网址是http://blog.qianmu.net/,此时ZIHOST是http://blog.qianmu.net/。

如果仅仅按照子系统网址来定义ZIHOST,可能会出现一些问题,如果按照当前网址来定义ZIHOST,就不会出现那些问题了。

所以对ZIHOST的定义改为

//如果全局根网址在当前页面完整网址当中,就把全局根网址定义为当前网址,否则就把子系统网址定义为当前网址
define('ZIHOST', strpos(get_url(), QMHOST) !== false ? QMHOST : Config::sysurl(SYS));
//如果全局根网址不在当前页面完整网址当中,就已经说明是开启了多域名,那么Config::sysurl(SYS)就必然要存在,就不对它进行过多判断兼容,这段代码中就用不到MULTI_DOMAIN == 'on'

这篇博客是写给自己看的,给自己后面编程的时候随时回顾了解。基本上不会有其它人会看到这篇文章,或者看到了也不知道在讲什么,因为他们不了解我的千木万能建站系统。目前也有想法把这个ZIHOST给换一个更加贴切的名称,比如NOWHOST,CUHOST(current host),就是当前根网址的意思,还在考虑,要不要换掉。

分类:编程笔记 时间:2021年03月17日 浏览:165