我经常访问的一个网站更改了域名(old.example.com -> new.example.com)。如何才能轻松地重写 Firefox 历史记录和会话(活动选项卡)中的所有条目,就好像该网站始终使用新域名而不是旧域名一样?您可以假设同步未启用。
我的情况类似从 Firefox 历史记录和精彩栏中删除按域名列出的 URL。这个被接受的答案是不够的,因为它只解释了如何删除项目,而我想知道如何重写项目。而且这个问题甚至没有提到重写活动选项卡(我有几十个这样的选项卡,分布在标签组)。
答案1
我刚刚重写了我的历史记录和标签。这花了两次,第一次尝试失败了(=全部历史记录丢失了),因此在执行以下步骤之前,请确保您已备份您的个人资料。
将历史记录从 迁移http://old.example.com
到 的 步骤https://new.example.org
:
- 退出 Firefox。
- 创建您的个人资料的备份(至少 sessionstore.js、places.sqlite 和 cookies.sqlite)。
- 编辑
sessionstore.js
所有出现的旧域名并将其替换为新域名。 - 如果存在
places.sqlite-shm
则删除。places.sqlite-wal
编辑
places.sqlite
(例如使用sqlite3
) 并更新moz_favicons
、moz_places
和moz_hosts
表。请注意,某些列具有唯一性约束,因此如果您访问了新网站,请删除新的历史记录项目(否则您可能会收到类似“错误:唯一性约束失败:moz_favicons.url”的错误)。-- Website icons (favorites and tabs) delete from moz_favicons where url like 'http://new.example.org%'; update moz_favicons set url=replace(url, 'http://old.example.com', 'https://new.example.org') where url like 'http://old.example.com%'; -- History delete from moz_places where url like 'https://new.example.org%'; update moz_places set url=replace(url, 'http://old.example.com', 'https://new.example.org'), rev_host='gro.elpmaxe.wen.' -- ".new.example.org", reversed where rev_host='moc.elpmaxe.dlo.'; -- ".old.example.com", reversed -- Host metadata, affects autocompletion in URL bar delete from moz_hosts where host='new.example.org'; update moz_hosts set host='new.example.org' where host='old.example.com';
如果存在
cookies.sqlite-shm
则删除。cookies.sqlite-wal
编辑
cookies.sqlite
:delete from moz_cookies where host like '%.new.example.org'; update moz_cookies set baseDomain='example.org', host=replace(host, '.old.example.com', '.new.example.org') where host like '%.old.example.com';
注意:如果您从 http 迁移到 https,您可能需要将列设置
isSecure
为 1,以将 cookie 限制为 https。- 现在启动 Firefox,现在您的历史记录和活动会话应该使用新的域。