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

This commit is contained in:
claude
2026-08-22 17:43:39 +02:00
parent 79e466dc98
commit 3c9da492a2
+15
View File
@@ -25,6 +25,14 @@ function ogImageUrl(coverImage: string, baseUrl: string): string {
return imgPath.startsWith("http") ? imgPath : `${baseUrl}${imgPath}`; 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<string, string> = {
"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 // 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 — // 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. // v bazi in v /api/articles ostanejo, ker jih bere sidebar na TV kanalih.
@@ -200,6 +208,13 @@ export function serveStatic(app: Express) {
return; 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 // 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), // in canonical na "/" — Google to bere kot podvojeno naslovnico (soft 404),
// izbrisani clanki pa ostanejo v indeksu in v Discovru. // izbrisani clanki pa ostanejo v indeksu in v Discovru.