Переписать историю посещений и сеансы после смены домена

Веб-сайт, который я часто посещаю, изменил свое доменное имя (old.example.com -> new.example.com). Как я могу легко переписать все записи в истории и сеансах Firefox (активные вкладки), как если бы сайт всегда использовал новый домен вместо старого? Вы можете предположить, что синхронизация не включена.

Моя ситуация похожа на удаление URL по доменам из истории Firefox и удивительной панели. That accepted answer is insufficient, because it only explains how to delete the items, while I want to know how to rewrite the items. And that the question does not even mention rewriting of active tabs (I have dozens of such tabs, spread across tab groups).

1 ответ

Решение

Я только что переписал свою историю и вкладки. Прошло два прохода, моя первая попытка не удалась (= полная история была потеряна), поэтому убедитесь, что у вас есть резервная копия вашего профиля, прежде чем выполнять следующие шаги.

Шаги, чтобы перенести вашу историю из http://old.example.com в https://new.example.org:

  1. Выйти из Firefox.
  2. Создайте резервную копию вашего профиля (как минимум sessionstore.js, place.sqlite и cookies.sqlite).
  3. редактировать sessionstore.js и замените все вхождения старого домена новым.
  4. удалять places.sqlite-shm а также places.sqlite-wal если они существуют.
  5. редактировать places.sqlite (например, используя sqlite3) и обновить moz_favicons, moz_places а также moz_hosts столы. Обратите внимание, что некоторые столбцы имеют ограничение уникальности, поэтому, если вы посетили новый сайт, удалите новые элементы истории (в противном случае вы можете получить сообщение об ошибке, например "Ошибка: ограничение UNIQUE не выполнено: 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, чтобы ограничить куки для https.

  8. Теперь запустите Firefox, и теперь ваша история и активные сеансы должны использовать новый домен.
Другие вопросы по тегам