Index: src/routes/admin-migrate.js
===================================================================
--- src/routes/admin-migrate.js	(revision 9529d7bda5061cdf8e8bbe1bd9d5cdfeae625f66)
+++ src/routes/admin-migrate.js	(revision e9128bc5aab022193bf90a325fb16b03b9d6540f)
@@ -35,4 +35,6 @@
 import { buildArchive, zipArchive } from '../services/ArchiveExportService.js';
 import { readArchiveZip, importArchive } from '../services/ArchiveImportService.js';
+import { parseApAliases } from './admin-sites.js';
+import db from '../config/database.js';
 
 const router = express.Router();
@@ -72,4 +74,9 @@
 }
 
+/** De aliassen als tekst, een per regel, zoals het invoerveld ze wil. */
+function aliasTekst(site) {
+  try { return (JSON.parse((site && site.ap_aliases) || '[]') || []).join('\n'); } catch { return ''; }
+}
+
 /**
  * Waar zouden we vandaan kunnen halen? De alias die we zelf claimen (FEP-7628
@@ -94,5 +101,5 @@
     telling, fout, mb,
     verslag: null,
-    bron: bronKandidaat(site),
+    bron: bronKandidaat(site), aliassen: aliasTekst(site), movedTo: (site && site.moved_to) || null,
     mig: site ? Migration.migrationStatus(site.slug) : null,
     haalVerslag: null,
@@ -133,5 +140,5 @@
     pageTitle: 'Migreren', bodyClass: 'on-special',
     telling, fout: null, mb, verslag: null,
-    bron: opgegeven || bronKandidaat(site),
+    bron: opgegeven || bronKandidaat(site), aliassen: aliasTekst(site), movedTo: site.moved_to || null,
     mig: Migration.migrationStatus(site.slug),
     haalVerslag: r,
@@ -139,4 +146,28 @@
     error: null,
   });
+});
+
+/**
+ * Je oude account claimen (FEP-7628 alsoKnownAs).
+ *
+ * Stond op de site-bewerkpagina, tussen de kleuren en de feedinstellingen. Maar
+ * dit is stap EEN van een verhuizing, en zonder deze claim weigert de oude
+ * instantie de Move met `no_backreference`. Het hoort dus hier, boven de knop
+ * die hem nodig heeft.
+ */
+router.post('/aliases', requireGod, async (req, res) => {
+  const site = res.locals.site;
+  if (!site) return res.redirect('/admin/migrate?error=' + encodeURIComponent('Geen site'));
+  const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, '');
+  let lijst;
+  try {
+    lijst = await parseApAliases(req.body.ap_aliases, ActivityPubService.actorId(base, site.slug));
+  } catch (e) {
+    // Welke regel niet deugde, niet alleen DAT er iets niet deugde.
+    return res.redirect('/admin/migrate?error=' + encodeURIComponent(`Onbruikbaar adres: ${e && e.message}`));
+  }
+  db.prepare('UPDATE sites SET ap_aliases = ? WHERE slug = ?').run(JSON.stringify(lijst), site.slug);
+  res.redirect('/admin/migrate?success=' + encodeURIComponent(
+    lijst.length ? `${lijst.length} adres(sen) opgeslagen als jouw vorige account.` : 'Aliassen leeggemaakt.'));
 });
 
@@ -195,5 +226,6 @@
     pageTitle: 'Migreren', bodyClass: 'on-special',
     telling: tellen(site).telling, fout: null, mb,
-    bron: bronKandidaat(site), mig: Migration.migrationStatus(site.slug), haalVerslag: null,
+    bron: bronKandidaat(site), aliassen: aliasTekst(site), movedTo: site.moved_to || null,
+    mig: Migration.migrationStatus(site.slug), haalVerslag: null,
     verslag: verslag ? { ...verslag, echt, overschrijf, bestand: req.file.originalname, bytes: req.file.buffer.length } : null,
     success: (echt && verslag && !fout) ? 'Archief geïmporteerd' : null,
