网站更改域名后重写浏览历史记录和会话

网站更改域名后重写浏览历史记录和会话

我经常访问的一个网站更改了域名(old.example.com -> new.example.com)。如何才能轻松地重写 Firefox 历史记录和会话(活动选项卡)中的所有条目,就好像该网站始终使用新域名而不是旧域名一样?您可以假设同步未启用。

我的情况类似从 Firefox 历史记录和精彩栏中删除按域名列出的 URL。这个被接受的答案是不够的,因为它只解释了如何删除项目,而我想知道如何重写项目。而且这个问题甚至没有提到重写活动选项卡(我有几十个这样的选项卡,分布在标签组)。

答案1

我刚刚重写了我的历史记录和标签。这花了两次,第一次尝试失败了(=全部历史记录丢失了),因此在执行以下步骤之前,请确保您已备份您的个人资料。

将历史记录从 迁移http://old.example.com到 的 步骤https://new.example.org

  1. 退出 Firefox。
  2. 创建您的个人资料的备份(至少 sessionstore.js、places.sqlite 和 cookies.sqlite)。
  3. 编辑sessionstore.js所有出现的旧域名并将其替换为新域名。
  4. 如果存在places.sqlite-shm则删除。places.sqlite-wal
  5. 编辑places.sqlite(例如使用sqlite3) 并更新moz_faviconsmoz_placesmoz_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';
    
  6. 如果存在cookies.sqlite-shm则删除。cookies.sqlite-wal

  7. 编辑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。

  8. 现在启动 Firefox,现在您的历史记录和活动会话应该使用新的域。

相关内容