Weiterleitungen und Link-Checker
Alte Adressen per 301/302 umleiten, automatische Weiterleitungen bei Slug-Änderungen, CSV-Import, Delivery-Endpunkte — und der wöchentliche Link-Checker für defekte Links.
Stand: 19.10.2026
Auf dieser Seite
Zwei Werkzeuge halten die Adressen einer Website in Ordnung: Weiterleitungen leiten alte Pfade auf neue, der Link-Checker findet Links, die ins Leere laufen. Beide gelten je Website und stehen im Admin unter Weiterleitungen bzw. Link-Checker.
*English summary: Redirects map old paths to new ones (301/302/307/308, exact or regex, per website, with hit counters, CSV import/export and automatic rules on slug changes). The frontend fetches them via GET delivery/redirects (all active rules, ETag) or resolves a single path via GET delivery/redirect?path=&host=. The link checker runs weekly (configurable) or on demand, collects every link from pages, blocks, navigation and entries, resolves internal paths against pages, entries and redirects, checks external URLs via HEAD/GET (8 s timeout, 5 in parallel, polite per host) and lists broken links with the place they were found in.*
Weiterleitungen
Eine Regel besteht aus Quelle (Pfad auf dieser Website), Ziel (Pfad oder absolute URL) und Statuscode.
| Code | Bedeutung | Wann |
|---|---|---|
| 301 | dauerhaft verschoben | Standard: Seite umbenannt, Struktur geändert |
| 302 | vorübergehend | Aktionsseite, Wartung |
| 307 | vorübergehend, Methode bleibt | Formulare, die POST senden |
| 308 | dauerhaft, Methode bleibt | wie 301, aber für POST |
Beim Abgleich zählt nur der Pfad: Query-String (?utm=…) und ein Slash am Ende werden ignoriert, der Query-String wird an das Ziel angehängt, falls dieses keinen eigenen hat. Optional gilt eine Regel nur für einen Host (etwa eine alte Domain, die auf die Website zeigt).
Reguläre Ausdrücke
Mit „Regulärer Ausdruck“ passt eine Quelle auf viele Pfade. Gruppen stehen im Ziel als $1, $2 zur Verfügung:
Quelle: ^/blog/(\d{4})/(.*)$
Ziel: /news/$2?jahr=$1Exakte Regeln gewinnen vor Regex-Regeln; Regex-Regeln werden in der Reihenfolge ihrer Anlage geprüft. Verschachtelte Quantoren wie (a+)+ werden abgelehnt.
Automatische Weiterleitungen
Ändert sich der Pfad einer veröffentlichten Seite – durch Veröffentlichen eines geänderten Entwurfs oder durch Verschieben im Seitenbaum – entsteht automatisch eine 301 vom alten auf den neuen Pfad. Veröffentlichte Unterseiten, deren Pfade mitgewandert sind, bekommen ebenfalls eine Regel. Dasselbe gilt für den Slug eines veröffentlichten Eintrags (/{typ}/{alter-slug} → /{typ}/{neuer-slug}) auf allen Websites, denen der Eintrag zugeordnet ist.
Automatische Regeln sind als „automatisch“ gekennzeichnet. Ketten werden vermieden: Zeigt eine bestehende Regel auf den alten Pfad, zeigt sie nach der Änderung direkt auf den neuen. Eine Rückwärts-Regel (neu → alt) wird gelöscht, damit keine Schleife entsteht. Handgepflegte Regeln bleiben unangetastet.
Testen, Treffer, CSV
- Testen: Pfad (und optional Host) eingeben – die Seite zeigt, welche Regel greifen würde, auch wenn sie deaktiviert ist. Testläufe zählen nicht.
- Treffer: Jede ausgelieferte Weiterleitung erhöht den Zähler und setzt „Letzter Treffer“. Regeln ohne Treffer über Monate können meist weg.
- CSV-Import/-Export: Spalten
sourcePath, targetUrl, statusCode, sourceHost, isRegex, enabled, note(Kopfzeile Pflicht, Trennzeichen,oder;, Spaltennamen auch deutsch: Quelle, Ziel, Status, Host, regex, aktiv, Notiz). Bestehende Quellen werden überschrieben; fehlerhafte Zeilen werden gemeldet, die übrigen importiert.
Abruf im Frontend
Zwei Endpunkte der Delivery-API, authentifiziert wie alle anderen (x-api-key oder Plattform-Schlüssel mit x-site-host/x-site-id):
# Alle aktiven Regeln – zum Cachen im Renderer, mit ETag / 304
curl "https://entrydeck.app/api/v1/delivery/redirects" \
-H "x-api-key: $ENTRYDECK_API_KEY"
# Einen Pfad auflösen – 200 mit Ziel oder 404; zählt den Treffer
curl "https://entrydeck.app/api/v1/delivery/redirect?path=/alte-seite&host=www.example.com" \
-H "x-api-key: $ENTRYDECK_API_KEY"{ "path": "/alte-seite", "target": "/neue-seite", "statusCode": 301, "isRegex": false, "id": "…" }Empfohlen: Der Renderer ruft delivery/redirect erst auf, wenn eine Seite nicht gefunden wurde (404-Pfad). So entsteht pro Treffer genau eine Anfrage, und der Zähler stimmt.
Link-Checker
Der Link-Checker sammelt alle Links der Website:
- Seiten: SEO-Felder und die Live-Blöcke (alle Werte in der Blockkonfiguration, auch verschachtelt),
- Navigation: Menüpunkte vom Typ „URL“ (alle Sprachen),
- Einträge: alle Felder veröffentlichter Einträge, die auf dieser Website sichtbar sind – Richtext (
href,src), URL-Felder und absolute Pfade in Link-Feldern (url,href,link, …).
Jede Adresse wird je Lauf einmal geprüft, egal wie oft sie vorkommt. Die Fundstellen stehen gesammelt unter „Gefunden in“ mit Link in den Editor.
Intern und extern
Interne Links (eigene Domains oder absolute Pfade) werden ohne HTTP aufgelöst: gegen die veröffentlichten Seiten aller Sprachen (inklusive Muster-Seiten wie /projekt/:slug), die Pfade veröffentlichter Einträge (/{typ}/{slug}), Uploads und die Weiterleitungen. Ein Sprachpräfix (/en/…) wird vorher entfernt.
Externe Links werden per HTTP geprüft: zuerst HEAD, bei Ablehnung GET; Weiterleitungen werden bis zu fünfmal verfolgt und als „Weiterleitung“ ausgewiesen. Zeitlimit 8 Sekunden, höchstens 5 Anfragen gleichzeitig, mindestens eine halbe Sekunde Pause je Host. Antworten ab 400 und Netzwerkfehler gelten als defekt; 429 und 999 (Bot-Abwehr) nicht.
Zeitplan und manueller Lauf
Der Scheduler prüft alle aktiven Websites wöchentlich (Standard: montags 04:00). „Jetzt prüfen“ startet einen Lauf sofort; der Fortschritt wird live angezeigt, ein laufender Lauf lässt sich abbrechen. Die letzten fünf Läufe bleiben erhalten.
| Variable | Standard | Bedeutung |
|---|---|---|
LINK_CHECK_CRON |
0 4 * * 1 |
Cron-Ausdruck des Zeitplans |
LINK_CHECK_ENABLED |
true |
false schaltet den Zeitplan ab (manuell weiter möglich) |
LINK_CHECK_TIMEOUT_MS |
8000 |
Zeitlimit je Anfrage |
LINK_CHECK_CONCURRENCY |
5 |
parallele Anfragen |
LINK_CHECK_HOST_DELAY_MS |
500 |
Pause zwischen Anfragen an denselben Host |
LINK_CHECK_MAX_URLS |
5000 |
Obergrenze je Lauf |
LINK_CHECK_KEEP_RUNS |
5 |
aufbewahrte Läufe je Website |
Ignorieren-Liste
Adressen, die Prüfroboter grundsätzlich ablehnen (Login-Bereiche, manche Netzwerke) oder bewusst so bleiben, kommen auf die Ignorieren-Liste. Sie werden weiter geprüft, aber nicht mehr als defekt gezählt; die Liste gilt je Website.
Rechte
| Recht | Erlaubt |
|---|---|
redirects.manage |
Weiterleitungen sehen, anlegen, ändern, importieren, testen |
linkcheck.read |
Link-Checker sehen, Lauf starten, Ignorieren-Liste pflegen |
Beide gehören zur System-Rolle „Tenant Admin“; eigene Rollen bekommen sie unter Benutzer → Rollen.