DEDECMS启用SSL后,栏目添加外部链接时就变成了https://xxx.com/xxx.com/***这个样子,网上搜了一下,答案如下。
一般引起这个问题的原因有两个:
1、外部链接是https
2、外部链接过长
OK,找到原因以后,开始找解决方法。
一、如果是由于https引起的,那么找到 include/helpers/channelunit.helper.php 该文件,然后打开找到大约429行
将如下代码
1 if(preg_match("/^http:|^ftp:/i", $typedir)) return $typedir;
增加https,修改为
1 if(preg_match("/^http:|^https:|^ftp:/i", $typedir)) return $typedir;
二、如果是由于外部链接过程引起的,则是由于长度过长,存入数据库只有一部分,所以链接无法打开,是由于数据库的限制
比如dede_arctype 表中 typedir 字段类似为 char(60) ,长度不够,可以修改为长度200。
1 ALTER TABLE `dede_arctype` CHANGE `typedir` `typedir` CHAR(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
修改完毕后清理缓存即可。