From 3c9da492a28a975e9ebf61f900583ccc4b962b54 Mon Sep 17 00:00:00 2001 From: claude Date: Sat, 22 Aug 2026 17:43:39 +0200 Subject: [PATCH] clanki: 301 preusmeritev za stare sluge preimenovanih clankov (alexander-rier-verraet-... -> alexander-rier-von-mann-zu-mann-...); star link je vracal trdi 404, kratki link jh5ml7 je imel 4573 klikov v prazno --- server/static.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/server/static.ts b/server/static.ts index 67c46cb..abccaad 100644 --- a/server/static.ts +++ b/server/static.ts @@ -25,6 +25,14 @@ function ogImageUrl(coverImage: string, baseUrl: string): string { return imgPath.startsWith("http") ? imgPath : `${baseUrl}${imgPath}`; } +// Stari slugi clankov, ki so bili pozneje preimenovani. Brez tega vsak star +// link (FB objave, komentarji, go.folx.tv kratki linki, Googlov indeks) pade +// na trdi 404. Kljuc = star slug, vrednost = trenutni slug. +const ARTICLE_SLUG_REDIRECTS: Record = { + "alexander-rier-verraet-das-ist-die-neue-frau-an-seiner-seite": + "alexander-rier-von-mann-zu-mann-immer-wieder-sonntags", +}; + // Rubrike, ki jih pisemo enkrat in objavimo tudi na onemusic.news. Besedilo je // isto na obeh domenah, zato jih na folx.tv drzimo zunaj Googlovega indeksa — // v bazi in v /api/articles ostanejo, ker jih bere sidebar na TV kanalih. @@ -200,6 +208,13 @@ export function serveStatic(app: Express) { return; } + // Star slug preimenovanega clanka -> trajna preusmeritev na novega. + const renamedTo = ARTICLE_SLUG_REDIRECTS[slug]; + if (renamedTo) { + res.redirect(301, `/article/${renamedTo}`); + return; + } + // Clanka s tem slugom ni. Brez tega bi SPA vrnil HTTP 200 z naslovnico // in canonical na "/" — Google to bere kot podvojeno naslovnico (soft 404), // izbrisani clanki pa ostanejo v indeksu in v Discovru.