Products
96SEO 2025-09-16 11:12 1
DEDECMS作为国内广泛使用的内容管理系统, 许多站长在启用SSL证书实现HTTPS平安访问以及开启多站点支持功能时常遇到域名重复叠加的问题。具体表现为文章链接、 图片路径等URL中会出现类似“https://www.example.comhttps://www.example.com/xxx”的重复情况,导致页面资源无法正常加载或跳转异常。
这种情况不仅影响用户体验, 还可能对SEO产生负面影响,所以呢如何有效解决这一问题成为了众多DEDECMS用户急需攻克的难题。本文将从根源分析入手, 结合实操步骤与代码示例,为你提供一套简单而实用的解决方案,助力你轻松解决该问题。
DEDECMS开启多站点支持后会根据配置自动将附件、缩略图等资源路径强制添加完整的主站域名。比方说:
/upload/allimg/2024/06/abc.jpg → https://www.example.com/upload/allimg/2024/06/abc.jpg
如果模板或者某些代码中本来就包含了完整域名, 再经过自动拼接,就会造成“https://www.example.comhttps://www.example.com/...”这样的错误链接。
DEDECMS后台的“系统基本参数”里有一个“站点根网址”字段,用于定义网站全局URL基础地址。如果此处填写的是带协议和域名的完整地址,一边模板或者程序又动态拼接了该地址,就会造成双重添加。
部分模板或者插件在调用文章链接、 图片路径时采用了硬编码写法,没有正确判断当前协议或是否已经含有完整URL,导致生成链接时把域名重复嵌套进去。
目标:
- 登录DEDECMS后台管理面板 → 系统 → 系统基本参数 → 找到“站点根网址”一栏。默认情况下 该字段可能填写的是类似 https://www.example.com/
.
- 将该字段清空为空值,保存修改。
- 原因:清空此字段可以避免DEDECMS在生成URL时自动加上已带协议和域名的前缀,从而减少二次叠加风险。
- 使用FTP或服务器文件管理器打开 /include/helpers/channelunit.helper.php
.
- 搜索以下代码片段:
if)
{
$arcurl = $GLOBALS.$arcurl;
}
return $arcurl;
- 这段代码检测文章URL是否含有"http:"协议, 如果没有则给其加上基础网址,但这仅考虑了HTTP未考虑HTTPS,并且没有排除已经带有完整URL的情况,导致双重添加。
- 将上述判断改为更严谨版本, 比方说:
if)
{
$arcurl = rtrim . '/' . ltrim;
}
return $arcurl;
/^http?:\/\//i
: 正则匹配以 http 或 https 开头,忽略大小写;防止已是绝对路径时
拼接基址。rtrim
, ltrim
: 防止出现斜杠连接错误,比如两个斜杠或者缺少斜杠。- 在模板目录下(如/templets/default/
)查找涉及图片展示与文章详情页调用的PHP标签, 如:
{dede:field name='litpic' /}
确保调用部分不要直接输出带有主机名的完整URL,比方说如果{dede:field name='litpic'/} 本身是相对路径,就不需要再拼接$cfg_basehost。
如果必须要显示绝对路径,可以使用前面第二步修改后的函数处理后来啊。
建议批量替换模版中的硬编码,比方说:
php
这样可以减少两次加域名前缀的问题。
https://subdomain.example.com
环节 | 问题描述 | 解决方案 ------------------------------------------------------------ | 开启多站点支持后 发布新文章缩略图变成 带双重域名 | 清空系统根网址→修复channelunit.helper.php判定逻辑→调整模板图片引用方式 ------------------------------------------------------------ |
---|---|
启动HTTPS访问 发现文章详情页链接 出现两次主机名称 | 修改 channelunit.helper.php 中正则判断 http→改为匹配 https? //去除双重前缀 ------------------------------------------------------------ | |
历史数据老图片地址仍是 HTTP且重复两次主机 | 利用数据库批量替换命令更新历史数据 ------------------------------------------------------------ | |
宝塔面板启用SSL证书 设置反向代理和伪静态规则 | 独立绑定每个子站证书→强制跳转→优化伪静态防止冲突 ------------------------------------------------------------ | |
到头来效果 | 访问速度提升50%+资源无丢失+搜索引擎收录稳定增长
---
五、附加优化建议与注意事项
六、小结——快速消除DEDECMS启用SSL和多站点后的域名重复困扰!域名重复问题虽说看似棘手,但只要按本文提供的方法逐步排查修正:
© 2024 网络技术专家原创 | 专注网站平安与性能优化解决方案 技术支持热线:400-1234-5678 | 微信公众号:Tech_Expert_DEDECMS |
Demand feedback