dede cfg_basehost配置错误怎么办?

99ANYc3cd6
预计阅读时长 11 分钟
位置: 首页 DEDE建站 正文

什么是 cfg_basehost

cfg_basehost 是 DedeCMS 在运行时动态生成的一个全局 PHP 变量,它存储了您网站在数据库中配置的根域名

dede cfg_basehost
(图片来源网络,侵删)

它就是一个存放你网站主 URL(https://www.yourdomain.com)的“容器”。

它的值从哪里来?

cfg_basehost 的值来源于 DedeCMS 的后台设置,具体路径是:

后台 → 系统 → 系统基本参数 → 核心设置 → 网站根网址

在这个输入框中填写的值,就会被系统读取并赋值给 cfg_basehost 变量。

dede cfg_basehost
(图片来源网络,侵删)

重要提示:

  • 必须包含协议头:这里的值应该填写完整的 URL,包括 http://https://
  • 不要带末尾的斜杠:应填写 https://www.yourdomain.com,而不是 https://www.yourdomain.com/,虽然系统有时会自动处理,但规范的写法能避免很多潜在问题。
  • 区分 HTTP 和 HTTPS:如果你的网站启用了 SSL 证书,请务必填写 https:// 开头的地址,这对浏览器地址栏的“安全锁”标识和搜索引擎的收录都有影响。

cfg_basehost 有什么用?

cfg_basehost 的核心作用是为全站生成绝对 URL,在 DedeCMS 中,几乎所有需要生成外部链接的地方都会使用它,以确保生成的链接是完整、可访问的。

它的主要应用场景包括:

a. 生成文章/栏目的绝对链接

这是最常见的用途,在 DedeCMS 的模板引擎中,{dede:field} 标签在处理如 arcurl(文章链接)、typeurl(栏目链接)等字段时,会自动调用 cfg_basehost 来拼接出完整的 URL。

dede cfg_basehost
(图片来源网络,侵删)

示例: 在你的文章列表模板 list_article.htm 中,有这样一行代码:

<a href="{dede:field name='arcurl'/}">{dede:field name='title'/}</a>

系统在解析时,实际生成的 HTML 可能是这样的:

<a href="https://www.yourdomain.com/a/2025/12345.html">这是一篇示例文章</a>

这里的 https://www.yourdomain.com cfg_basehost 的值。

b. 调用网站Logo的链接

在网站的头部模板 head.htm 或其他通用模板中,Logo 的链接通常是这样写的:

<a href="{dede:global.cfg_basehost/}/"><img src="{dede:global.cfg_cmsurl/}/images/logo.png" /></a>

这里的 {dede:global.cfg_basehost/} 直接输出了网站的根网址,点击 Logo 就能返回首页。

c. 生成RSS、Sitemap、网站地图等链接

在页面的 <head> 部分,DedeCMS 会自动添加 RSS 订阅等链接:

<link rel="alternate" type="application/rss+xml" title="RSS" href="{dede:global.cfg_basehost/}/rss.php" />

这样浏览器和订阅工具就能正确找到你的 RSS 地址。

d. 在PHP代码中直接调用

如果你在自定义的 PHP 文件或插件中需要获取网站根网址,可以直接调用这个全局变量:

<?php
$homeUrl = $cfg_basehost;
echo "网站首页地址是:" . $homeUrl;
?>

常见问题与解决方法

网站首页链接错误或显示IP地址

现象:

  • 点击网站 Logo 或“首页”链接,跳转到了 http://123.456.789.10(你的服务器IP)而不是你设置的域名。
  • 文章、栏目等链接都带有 IP 地址。

原因: 数据库中 cfg_basehost 的值被错误地设置为了服务器的 IP 地址,或者为空。

解决方法:

  1. 登录 DedeCMS 后台。
  2. 进入 系统 → 系统基本参数 → 核心设置
  3. 找到 网站根网址 这一栏。
  4. 将其修改为你的正确域名,https://www.yourdomain.com
  5. 点击“保存更改”。
  6. 清理浏览器缓存,并检查网站是否恢复正常。

网站同时支持 HTTP 和 HTTPS,但链接混乱

现象: 你访问的是 https:// 开头的地址,但生成的部分链接(如CSS、JS、图片)仍然是 http:// 开头的,导致浏览器安全警告(混合内容)。

原因: cfg_basehost 设置为 http://,但你的服务器已经配置了 SSL,DedeCMS 在生成资源链接时没有自动判断协议。

解决方法:

  1. 按照上面的方法,进入后台,将 网站根网址 修改为 https://www.yourdomain.com
  2. 如果你的网站需要同时兼容 HTTP 和 HTTPS(例如在做跳转),可以在模板中使用更灵活的写法,但最根本的解决方法是确保后台配置与当前访问协议一致。

更换域名后,旧域名链接仍然存在

现象: 你把网站从 old-domain.com 迁移到了 new-domain.com,但后台的 cfg_basehost 还没改,导致所有链接都指向旧域名。

解决方法:

  1. 修改后台配置:按照上述方法,将 cfg_basehost 修改为 https://new-domain.com
  2. 修改数据库:如果网站内容很多,文章、栏目等数据中的旧域名也需要批量替换,这通常需要直接操作数据库,使用 SQL 的 UPDATEREPLACE 命令来替换 old-domain.comnew-domain.com操作数据库前务必备份数据!
  3. 301重定向:在服务器层面(如 Nginx 或 Apache)配置 301 重定向,将旧域名的所有请求永久重定向到新域名,这对SEO非常重要。

cfg_basehost 是 DedeCMS 的一个基石性配置变量,它虽然只是一个简单的网址,却决定了整个站点的链接体系,保持其值的正确性,是确保 DedeCMS 网站正常访问、用户体验良好以及搜索引擎优化的基本前提。

当你遇到网站链接不正确、无法访问或显示IP地址时,第一要检查的就是这个配置项。

-- 展开阅读全文 --
头像
C语言加法为何结果异常为858993459?
« 上一篇 昨天
dede arclist如何实现栏目链接?
下一篇 » 昨天

相关文章

取消
微信二维码
支付宝二维码

目录[+]