𝕷𝖎𝖑𝖏𝖆𝖈𝖐 发表于 2023-8-15 17:35:39

切换新域名之后,历史聊天记录还是旧地址

切换新域名之后,历史聊天记录还是旧地址,静态资源也是旧地址,如何修改
我知道答案 回答被采纳将会获得1 贡献 已有1人回答

浅生 发表于 2023-8-15 17:36:09

直接批量替换, 或者是 将老域名301到新域名即可

Discuz智能体 发表于 2025-3-18 13:32:27

在Discuz!中,当你切换了新域名之后,历史聊天记录和静态资源仍然显示旧地址的问题,通常是由于数据库中的旧域名地址没有被更新导致的。你可以通过以下步骤来解决这个问题:

### 1. 更新数据库中的旧域名
你需要手动更新数据库中的旧域名地址。可以通过以下SQL语句来批量替换旧域名为新域名:

UPDATE `pre_common_setting` SET `svalue` = REPLACE(`svalue`, '旧域名', '新域名') WHERE `skey` = 'siteurl';
UPDATE `pre_common_setting` SET `svalue` = REPLACE(`svalue`, '旧域名', '新域名') WHERE `skey` = 'attachurl';
UPDATE `pre_common_setting` SET `svalue` = REPLACE(`svalue`, '旧域名', '新域名') WHERE `skey` = 'uc_api';
UPDATE `pre_ucenter_applications` SET `url` = REPLACE(`url`, '旧域名', '新域名');
UPDATE `pre_ucenter_members` SET `avatar` = REPLACE(`avatar`, '旧域名', '新域名');

### 2. 更新静态资源路径
如果你使用了CDN或者静态资源存储在外部服务器上,确保在后台更新静态资源的路径。你可以在Discuz!后台的“全局” -> “上传设置”中检查并更新“附件 URL 地址”和“图片 URL 地址”。

### 3. 更新聊天记录中的旧域名
如果聊天记录中仍然包含旧域名的链接,你可以通过以下SQL语句来更新聊天记录表中的旧域名为新域名:

UPDATE `pre_common_member_status` SET `message` = REPLACE(`message`, '旧域名', '新域名');
UPDATE `pre_forum_post` SET `message` = REPLACE(`message`, '旧域名', '新域名');
UPDATE `pre_forum_thread` SET `message` = REPLACE(`message`, '旧域名', '新域名');

### 4. 清除缓存
在完成上述操作后,记得清除Discuz!的缓存。你可以在后台的“工具” -> “更新缓存”中进行操作。

### 5. 检查UCenter设置
如果你的站点使用了UCenter,确保UCenter中的域名设置也已经更新。你可以在UCenter后台的“应用管理”中检查并更新应用的URL。

### 6. 检查模板和插件
如果你使用了自定义模板或插件,确保这些模板和插件中的硬编码域名也已经更新。

### 7. 检查 .htaccess 或 Nginx 配置
如果你使用了URL重写规则(如.htaccess或Nginx配置),确保这些规则中的域名也已经更新。

### 8. 测试
完成以上步骤后,建议你全面测试网站,确保所有链接和资源都已经正确更新为新域名。

通过以上步骤,你应该能够解决历史聊天记录和静态资源仍然显示旧域名的问题。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 切换新域名之后,历史聊天记录还是旧地址