ForHosting KIT · Entwickler-Tools

Slug-Kollisionen mit fortlaufendem Nummernsuffix lösen

Der Kollisionslöser vergleicht Ihren gewünschten Slug exakt mit den bereits belegten Slugs.

● BetaKostenlos · im Browser
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Ist der Wert verfügbar, wird er unverändert zurückgegeben. Ist er vergeben, prüft das Werkzeug nummerierte Alternativen wie -2, -3 und weitere Werte, bis es die erste freie Variante findet. Es ist ein kleiner, deterministischer Baustein für Redaktionssysteme, Importe, Dokumentationsgeneratoren und jeden Ablauf, der einen eindeutigen URL-Pfad vergeben muss, ohne vorhandene Inhalte versehentlich zu überschreiben.

Behalten Sie den gewünschten Slug möglichst bei

Ein guter Kollisionslöser sollte eine URL nur ändern, wenn es wirklich nötig ist. Übermitteln Sie den vorgeschlagenen Wert in desired_slug und alle belegten Werte in used_slugs. Die Vergleiche erfolgen exakt und berücksichtigen Groß- und Kleinschreibung. Kommt der Vorschlag in der belegten Menge nicht vor, enthält das Ergebnis den ursprünglichen Slug und meldet, dass keine Kollision aufgetreten ist. Das Werkzeug wandelt nicht in Kleinbuchstaben um, entfernt keine Randzeichen, transliteriert nicht und ersetzt keine Satzzeichen. Solche Umformungen gehören in einen vorgelagerten Schritt zur Slug-Erzeugung. Die Trennung dieser Aufgaben verhindert unerwartete URL-Änderungen und macht Ergebnisse in Builds, Migrationen und Tests reproduzierbar. Ein leerer gewünschter Slug wird abgelehnt, statt daraus ein beliebiges Suffix zu bilden, denn dies würde einen fehlenden Titel oder eine fehlerhafte Zuordnung verschleiern. Doppelte Einträge in der Liste beeinflussen die Antwort nicht und müssen für ein stabiles Ergebnis nicht vorher bereinigt werden.

Wählen Sie das erste freie Nummernsuffix

Wenn der exakte Slug belegt ist, beginnt die Auswahl bei 2. Dies folgt der üblichen Konvention, nach der der Pfad ohne Suffix für das erste Element steht und das nächste Element -2 erhält. Anschließend werden Kandidaten aufsteigend geprüft: gewuenscht-2, gewuenscht-3, gewuenscht-4 und so weiter. Die Suche endet beim ersten Kandidaten, der in der übergebenen Menge fehlt. Dadurch werden Lücken vorhersehbar wiederverwendet. Sind beispielsweise report, report-2 und report-4 belegt, lautet das Ergebnis report-3. Verglichen werden vollständige Zeichenketten; Werte wie annual-report oder report-old lösen daher keine Kollision aus. Eine bereits vorhandene numerische Endung gilt als wörtlicher Bestandteil des gewünschten Werts und wird weder interpretiert noch umgeschrieben: Wird release-2 angefordert und ist dieser Wert belegt, lautet der erste Kandidat release-2-2. Dieses klare Verhalten vermeidet Vermutungen über Ihre Absicht und garantiert für gleiche Eingaben stets dieselbe Ausgabe, unabhängig von Datenbank, Uhrzeit, Zufall, Gebietsschema oder Ausführungsreihenfolge.

Nutzen Sie das Ergebnis sicher in Veröffentlichungsabläufen

Diese Funktion eignet sich für den Punkt, an dem Ihre Anwendung die reservierten Slugs bereits kennt. Sammeln Sie diese Werte, übermitteln Sie sie zusammen mit dem gewünschten Slug und verwenden Sie die Rückgabe für den neuen Datensatz. Die Antwort zeigt außerdem, ob eine Kollision vorlag und welche Nummer bei einem Ergebnis mit Suffix gewählt wurde. Diese Metadaten können Protokolle, Vorschauen oder Hinweise speisen, die eine Abweichung von der ursprünglichen URL erklären. Der Vorgang reserviert den zurückgegebenen Wert nicht. Systeme mit gleichzeitigen Schreibzugriffen sollten deshalb weiterhin eine Eindeutigkeitsbedingung erzwingen und mit einer aktualisierten Liste erneut versuchen, falls ein anderer Vorgang denselben Slug belegt. Ergänzen Sie bei Stapelimporten nach jeder erfolgreichen Zuweisung Ihre lokale Menge, bevor Sie die nächste Zeile verarbeiten. Da der Vergleich exakt ist, sollten Sie zuvor konsequent Ihre eigene URL-Regel anwenden und bei Bedarf Großschreibung, Unicode, Leerzeichen oder Satzzeichen mit einem Slug-Generator normalisieren. Jede API-Anfrage kostet $0.002; dieselbe deterministische Logik kann für interaktive Prüfungen im Browser laufen.

Veröffentlichen Sie eine Seite ohne Überschreiben

Behalten Sie den bevorzugten Redaktionspfad bei, wenn er frei ist, oder vergeben Sie die erste verfügbare nummerierte Alternative.

Importieren Sie Datensätze mit stabilen URLs

Prüfen Sie jeden vorbereiteten Slug gegen vorhandene und neu vergebene Pfade, damit wiederholte Titel deterministische Suffixe erhalten.

Erzeugen Sie Routen für Dokumentationen

Verhindern Sie, dass doppelte Überschriften oder generierte Seiten denselben Pfad beanspruchen, und erhalten Sie lesbare, vorhersehbare Adressen.

Was geschieht, wenn der gewünschte Slug frei ist?

Er wird unverändert zurückgegeben und collision ist false.

Welches Suffix wird zuerst geprüft?

Der Löser beginnt mit -2 und prüft danach -3, -4 und höhere Werte, bis er den ersten freien findet.

Wandelt das Werkzeug Text in einen URL-Slug um?

Nein. Es vergleicht und erweitert den exakt übermittelten Wert. Verwenden Sie vorher einen Generator, wenn Großschreibung, Leerzeichen, Satzzeichen oder Unicode normalisiert werden sollen.

Berücksichtigt der Vergleich Groß- und Kleinschreibung?

Ja. Product und Product sind identisch, während Product und product als unterschiedliche Zeichenketten gelten.

Reserviert die Funktion den zurückgegebenen Slug?

Nein. Sie berechnet aus der Liste einen Kandidaten. Ihr Speichersystem muss beim Schreiben Eindeutigkeit erzwingen.

Was kostet eine API-Anfrage?

Jede Anfrage kostet $0.002.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/dev/slug-collision-resolve

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/dev/slug-collision-resolve \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"desired_slug":"product-guide","used_slugs":["product-guide","product-guide-2"]}'
{
  "desired_slug": "product-guide",
  "used_slugs": [
    "product-guide",
    "product-guide-2"
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.slug_collision_resolve",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

max_used_slugs10000
max_slug_chars10000
HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Vollständige KIT-Dokumentation lesen →