更换域名的准备工作
在开始更换Discuz! X域名的操作前,充分的准备工作是确保整个过程顺利的关键,需要明确新域名的可用性,确保新域名尚未被注册,并且与网站定位、品牌形象相符,建议选择简短易记、包含核心关键词的域名,同时检查域名是否涉及敏感词汇,避免后续备案或使用过程中出现不必要的麻烦,确认新域名的DNS解析是否生效,通过ping命令或在线DNS检测工具验证域名是否指向正确的服务器IP地址,这是后续网站能够正常访问的基础,建议在操作前对网站数据库和程序文件进行完整备份,备份文件应存储在本地或其他安全的服务器上,以防操作过程中出现数据丢失或错误时能够快速恢复,提前通知网站管理员和用户,说明域名更换的时间安排及可能的影响,减少因域名变更带来的用户困惑。

修改程序文件中的域名配置
Discuz! X的程序文件中包含多处域名配置,更换域名后需要逐一修改,确保网站各功能模块能正常调用新域名,操作前请务必通过FTP或服务器管理工具备份原程序文件,避免误操作导致网站无法运行。
修改全局配置文件
登录网站服务器,进入config/config_global.php文件,找到以下两行关键配置:
$_config['site']['url'] = 'https://www.old-domain.com'; // 原域名 $_config['site']['mobileurl'] = 'https://m.old-domain.com'; // 原移动端域名(如存在)
将其中的old-domain.com替换为新域名,注意保持协议(http/https)和子域名结构一致,若网站未启用移动端域名,可保留默认或删除相关配置。
修改UCenter通信配置
如果网站集成有UCenter(如论坛、用户中心等联动),需修改config/config_ucenter.php文件中的通信域名:
define('UC_API', 'https://www.old-domain.com/uc_server/'); // 原UCenter通信地址
将其替换为新域名对应的UCenter路径,确保UCenter与其他应用间的通信不受影响。
检查并修正其他硬编码域名
部分插件或自定义模板中可能存在硬编码的域名,需通过FTP搜索整个程序目录,查找包含old-domain.com的文件(可使用grep -r "old-domain.com" /path/to/discuz命令批量搜索),并逐一替换,重点关注static目录下的静态文件路径、插件配置文件及模板文件中的链接。

更新数据库中的域名信息
数据库是存储网站核心数据的地方,域名更换后需更新表中的相关记录,否则可能导致页面跳转错误、资源无法加载等问题,操作前务必备份数据库,可通过phpMyAdmin或服务器命令行工具完成。
更新pre_common_setting表
该表存储网站的全局配置信息,包含域名相关设置,执行以下SQL语句(将old-domain.com替换为新域名):
UPDATE `pre_common_setting` SET `value` = REPLACE(`value`, 'old-domain.com', 'new-domain.com') WHERE `variable` IN ('siteurl', 'attachurl', 'siteip');
更新pre_common_syscache表
该表缓存系统关键数据,如域名信息会影响首页导航等模块的链接,执行:
UPDATE `pre_common_syscache` SET `cache` = REPLACE(`cache`, 'old-domain.com', 'new-domain.com') WHERE `cache` LIKE '%old-domain.com%';
更新帖子、附件等表中的链接
pre_forum_post)、pre_common_attachment(附件)等表中可能包含用户发布的旧域名链接,需批量替换:
UPDATE `pre_forum_post` SET `message` = REPLACE(`message`, 'old-domain.com', 'new-domain.com'); UPDATE `pre_common_attachment` SET `url` = REPLACE(`url`, 'old-domain.com', 'new-domain.com');
注意:若网站数据量较大,建议分批次执行,避免数据库负载过高。
处理缓存与重定向设置
清理Discuz! X缓存
登录网站后台,进入“全局”—“缓存管理”,点击“更新全部缓存”,确保新域名配置生效,通过FTP删除data/cache目录下的所有缓存文件(*.php),避免旧缓存影响新域名访问。

配置服务器重定向(301跳转)
为保障SEO效果和用户体验,需在服务器端设置301重定向,将旧域名请求永久导向新域名,不同服务器的配置方法如下:
- Apache服务器:在网站根目录的
.htaccess文件中添加:RewriteEngine On RewriteRule ^(.*)$ https://www.new-domain.com/$1 [R=301,L]
- Nginx服务器:在nginx.conf的server块中添加:
server { listen 80; server_name old-domain.com www.old-domain.com; return 301 https://www.new-domain.com$request_uri; }配置完成后重启服务器,通过访问旧域名测试是否成功跳转到新域名。
测试与后续优化
完成上述操作后,需全面测试网站功能,确保域名更换无遗漏,测试内容包括:首页及各栏目页是否正常访问、用户登录/注册功能是否正常、附件下载是否正常、论坛发帖/回复是否正常、手机端适配是否正常等,若发现部分页面仍显示旧域名,需检查是否遗漏了程序文件或数据库中的修改,或是否存在缓存未清理的情况。
建议通过百度站长平台、Google Search Console等工具提交新域名,并设置域名的抓取优先级,告知搜索引擎网站已更换域名,生成新的网站地图(sitemap)并提交,加速搜索引擎对新域名的收录,关注网站流量变化,若出现流量异常下降,需检查是否存在外链未更新、301跳转未生效等问题,并及时调整。
注意事项与常见问题
- HTTPS协议一致性:若原网站使用HTTPS,新域名需同时配置SSL证书,避免因协议不一致导致浏览器安全警告,可通过Let’s Encrypt免费获取证书,或联系主机服务商购买。
- 附件路径问题:若附件存储在本地服务器,需确保
config/config_global.php中的attachurl配置正确,避免附件无法显示。 - 跨域问题:若网站涉及第三方接口(如微信登录、支付等),需在第三方平台更新授权域名,确保接口调用正常。
- 数据备份:整个操作过程中,数据库和程序文件的备份文件需保留一段时间,直至确认网站完全稳定运行。
通过以上步骤,可顺利完成Discuz! X域名的更换,确保网站功能正常、用户体验不受影响,同时保障搜索引擎权平稳过渡。















