dz换域名的标准答案是:后台“全局→站点信息→站点URL”和“UCenter应用管理”两处必须同步改,再配合config文件里的cookie域名设置,最后做旧域名301跳转,顺序一旦搞反,后台直接进不去,这是绝大多数换域名翻车案例的根源。
我处理过不少dz论坛的域名变更问题,也见过有人因为少改一个地方,导致登录状态时好时坏、头像集体消失、帖子里的图片全部打不开,今天把整套流程拆开讲清楚,你按顺序操作就能避开这些坑。
dz论坛怎么更换域名:核心是三个入口对齐
dz的域名配置不像普通建站程序那样只存在一个文件里,它分散在三个位置,任何一个没改,都会出现奇怪的问题。
第一个入口是站点后台,登录后进入“全局→站点信息”,找到“站点URL”这一项,这里要注意,填写的地址必须以/结尾,https://www.newdomain.com/,少写斜杠会导致部分页面的相对路径拼接错误。
第二个入口在UCenter,dz的登录状态、头像、短消息都由UCenter统一管理,所以域名变更必须在UCenter里同步,路径是“站长→UCenter设置”,里面有一项“UCenter 应用 ID:1”,点旁边的“编辑”按钮,把“应用的主 URL”改成新域名,同时还需要单独访问一次 /uc_server 管理后台(地址通常是 https://www.newdomain.com/uc_server),在“应用管理”里确认应用URL已同步更新。UCenter不会自动帮你同步Discuz的域名,必须手动两边对齐。
第三个入口是配置文件 config/config_global.php,用文本编辑器打开,找到 $_config['cookie']['cookiedomain'],如果这里设置了旧域名(.olddomain.com),需要改成新域名或者直接留空,留空表示使用当前访问域名作为cookie作用域,不填通常是最稳妥的做法,能避免子域名和主域名之间cookie串台的问题。
三个入口都改完后,进后台“工具→更新缓存”,选择全部更新,然后退出账号,用新域名重新登录测试。登录状态能跨页面保持,说明cookie配置已经生效。
换域名时后台上不去?三步解锁后台
很多人问“dz怎么更换域名”时,实际遇到的情况是:网站还在旧域名上,但新域名已经解析好了,想从新域名进后台,发现登录后马上跳回登录页,或者干脆提示“非法操作”,这是因为cookie的作用域还绑定在旧域名上,新域名拿不到凭证。
这种情况下,不要尝试从新域名登录,应该先从旧域名把后台改好,再等新域名生效,具体分三步处理。
第一步,用临时域名访问,如果你已经停用了旧域名,可以用修改本地hosts文件的方式,让电脑强行把新域名解析到服务器IP,Windows系统修改 C:WindowsSystem32driversetchosts,Linux/macOS修改 /etc/hosts,在文件末尾加一行 你的服务器IP 你的新域名,保存后刷新浏览器就能用新域名访问后台了,这会绕开DNS缓存问题。
第二步,直接修改配置文件,如果连临时解析都嫌麻烦,或者旧域名已经完全失效,那就用phpMyAdmin或其他数据库管理工具打开dz的数据库,找到 pre_common_setting 表,把 siteurl 字段的值改成新域名地址,Dz的后台站点URL设置本质上是写入这张表,直接改表和后台改的效果一样,还能绕过后台登录验证。
第三步,改cookie域名,同样在 config/config_global.php 里,把 $_config['cookie']['cookiedomain'] 改成 $_config['cookie']['cookiedomain'] = '';,保存后再访问新域名,登录态就能正常保持了。
第三步操作完成后,再回到第一个问题里讲的后台和UCenter正常修改流程。解锁后台只是手段,最终还是要回到三个入口对齐的正轨上。
Discuz换域名后图片不显示?先看这两处
dz换域名后图片挂掉,是打开频率最高的问题,多数情况下,不是图片文件丢了,而是图片的链接地址还停留在旧域名,浏览器去旧域名拉资源,自然拉不到。
第一处要检查的是“本地附件URL”,后台“全局→上传设置”里,本地附件URL”一栏填的是绝对地址(https://www.olddomain.com/data/attachment),那全站的附件图片都会按这个地址输出,改成新域名对应的路径,保存后刷新页面看效果。
第二处是帖子里已经存在的内容,dz发帖时,如果用户通过编辑器插入了图片,图片地址会被完整保存字段里,包括域名部分,这部分数据不会因为后台改了站点URL就自动更新,需要到数据库里批量替换,操作前先备份数据库,然后在phpMyAdmin的SQL执行窗口运行:
UPDATE pre_forum_post SET message = REPLACE(message, 'www.olddomain.com', 'www.newdomain.com');
这条命令会把所有帖子里包含旧域名的链接替换成新域名。pre_forum_post 是dz的帖子主表,如果你的表前缀不是 pre_,按实际前缀调整。
头像不显示的情况单独说明,dz头像存储在 uc_server/data/avatar 目录下,文件名和URL都基于uid生成。
换域名后头像消失,大概率是UCenter通信失败,而不是文件丢了,回到后台“站长→UCenter设置”页面,确认“UCenter 应用 ID”对应的应用URL是新地址,然后点页面下方的“测试”按钮,看通信状态是否显示成功,通信恢复正常后,前台刷新即可看到头像。
搬家换域名一起做:正确的操作顺序
如果网站不只是换域名,还要同时搬家换服务器,操作顺序就需要更谨慎。先搬家恢复访问,再换域名,别跳过中间步骤直接把新网站开起来。
很多人习惯先在旧服务器上把域名配置全部改好,再把数据打包搬到新服务器,这样做的风险在于:dz后台改了站点URL之后,数据库里所有相关字段都会更新,但你在旧服务器上已经无法验证效果(因为你绑定的新域名并没解析到旧服务器),一旦打包时文件没有同步打包干净,新服务器上会同时存在两套不同的域名配置,排查难度会成倍增加。
更稳妥的做法是:先把完整文件和数据库打包搬到新服务器,用临时域名或IP访问新站,确认数据完整、图片能打开、能登录后台,然后再按第一部分讲的流程改域名,改完之后去UCenter后台同步一次,最后清理缓存。
比起单纯换域名,搬家场景多出两个需要留意的点。
一是伪静态规则,dz的URL重写规则在Apache和Nginx下写法不同,Apache用的是 .htaccess,Nginx用的是 location 规则,跨服务器环境搬家时,不能直接复制旧的配置文件,需要从官方文档或技术社区找对应版本的Nginx规则重新配置,如果新站是Nginx环境而旧站是Apache,这一步躲不过去。
二是附件数据同步,dz的附件地址里通常包含年月的目录结构,/data/attachment/forum/202606/,搬家时如果只同步了数据库没同步附件目录,或者目录层级没保持一致,即便域名改对了,图片依然全部404,搬完家之后,先检查附件目录的文件数量和大小,看是否和搬家前一致,再进后台更新缓存。
换域名后的几个收尾细节
域名换完不能直接撒手不管,下面几件事漏掉会影响正常访问和搜索引擎排名。
新域名的ICP备案如果之前没有做过,而服务器又在中国大陆,需要先走备案流程,不同地区的通信管理局审核周期不太一样,通常几个工作日到半个月不等,如果是海外服务器则可以跳过这一步,但访问速度和稳定性要看服务器线路情况,部分云厂商会在备案完成前拦截80和443端口访问,所以提前确认更稳妥。
旧域名最好保留一段时间,不做保留的话,以前收藏旧链接的用户会看到无法访问的页面,搜索引擎收录的旧URL也会逐步失效。
保留方式是在旧域名的服务器配置里加一条301跳转,把旧地址永久重定向到新域名对应页面,Nginx下大致写法:
server {
listen 80;
server_name www.olddomain.com olddomain.com;
return 301 https://www.newdomain.com$request_uri;
}
Apache则在虚拟主机配置里加 Redirect 301 / https://www.newdomain.com/。
百度搜索资源平台里也有“站点改版”工具,提交新老域名对应关系后,搜索引擎会按照301跳转逐步完成权重的转移,这一步对老站来说基本是必做项,不做的话排名波动幅度会比较大。
SSL证书也要记得重新申请,dz后台如果启用了“全站强制https”,而新域名的证书还没配上,浏览器会直接提示不安全,论坛完全没法访问,现在免费证书的申请流程很方便,配置好之后去后台“全局→站点信息”里确认站点URL的协议头是 https。
常见问题:dz换域名涉及的其他细节
Q1:dz换域名需要重新备案吗?
如果只是域名变了,服务器没变且新域名之前没备案过,就需要重新备案,dz论坛属于交互式网站,备案审核相对严格,需要准备身份证、核验照片等材料,新域名备案下来之前,可以把网站临时搬到香港或海外节点保持访问,但这样会导致国内访问速度下降,且备案期间不太建议做大的改动。
Q2:换完域名后新站打开正常,但旧链接还有不少人在访问,怎么处理?
能用搜索引擎的Site命令或百度统计查看旧域名的访问来源,然后在底层设置301跳转,把旧域名下所有路径无缝转发到新域名对应路径,这一步前面提到过,重点是不要用302临时跳转,否则权重迁移效果会打折扣,设置完成后在后台“工具→更新缓存”里清除旧缓存,再观察几天流量变化。
Q3:dz换域名后论坛能访问,但首页样式全乱了,图片都在但是排版塌了?
样式表文件路径有问题,后台“全局→站点信息”的站点URL改好后,模板里的CSS和JS资源会按新域名加载,如果浏览器还在缓存旧地址的资源,就会出现样式丢失,解决方法是进后台“工具→更新缓存”,选择“模板缓存”和“数据缓存”一起更新,然后用无痕模式刷新页面,如果模板文件里写死了旧域名,需要在后台“界面→模板管理”里检查模板的“模板全局变量”,看是否存在硬编码的域名配置。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/640172.html




