Verifichi l’unicità e il formato di uno slug
Verifichi uno slug proposto prima di pubblicare: summer-sale-2026 è valido e unico rispetto a spring-sale-2026, clearance e summer-sale-2025. Passano solo lettere minuscole, cifre e trattini singoli, e il confronto è esatto. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Verifichi uno slug proposto prima che raggiunga un CMS, una pipeline di distribuzione o una tabella di routing. Lo strumento impone anzitutto un formato prevedibile con lettere minuscole, cifre e trattini singoli, poi confronta la proposta valida con gli slug esistenti indicati da Lei. Un formato non valido genera sempre un errore, anche quando lo stesso testo compare nell’elenco. I risultati validi mostrano chiaramente se lo slug è univoco e se è stata rilevata una collisione esatta.
Convalidi lo slug prima di verificarne la disponibilità
Un risultato di unicità è utile soltanto se il valore proposto può entrare in sicurezza in un URL. Inserisca il candidato e fornisca gli slug già usati dal sito, dall’applicazione o dall’archivio dei contenuti. Sono ammesse lettere inglesi minuscole da a a z, cifre da 0 a 9 e trattini fra gruppi non vuoti.
Sono respinti maiuscole, spazi, trattini bassi, punteggiatura e trattini iniziali, finali o ripetuti. L’ordine è rigoroso: il formato viene verificato prima della corrispondenza. Di conseguenza, un candidato errato presente anche nell’elenco genera un errore di input, non una normale collisione.
I moduli, le importazioni massive e le distribuzioni applicano così una regola stabile. Rispetti il limite di lunghezza e invii la raccolta corrente come array di stringhe; nessuna normalizzazione nascosta modifica quanto trasmesso.
Interpreti correttamente le collisioni esatte
Per un candidato ben formato, la risposta riporta lo slug inviato, conferma la validità del formato e presenta due indicatori complementari: unicità e collisione. La collisione esiste quando la stringa esatta compare almeno una volta nell’elenco fornito. Il confronto è volutamente esatto: lo strumento non rimuove prefissi, non decodifica escape URL, non rifila gli elementi e non equipara espressioni simili.
Per esempio, guida-prodotto e guide-prodotto restano due percorsi validi diversi. Questa scelta rende la risposta deterministica e lascia all’applicazione le regole su nomi riservati, prefissi locali, reindirizzamenti o vincoli del database. I duplicati nell’elenco non cambiano l’esito.
Poiché l’elenco è la fonte corrente della richiesta, lo aggiorni quando più redattori o processi possono rivendicare percorsi contemporaneamente.
Usi il controllo nella pubblicazione e nella distribuzione
Esegua il controllo il più vicino possibile alla prenotazione del percorso. In un editor, convalidi dopo aver generato lo slug dal titolo e ripeta l’operazione se cambia. Per un sito statico, raccolga prima i percorsi di output e confronti ogni proposta con quelli già accettati.
L’operazione è deterministica, non usa la rete e non conserva dati, quindi è adatta a test e build ripetibili. Tuttavia verifica senza prenotare: un altro processo può acquisire lo slug dopo la lettura dell’elenco. In presenza di scritture concorrenti, imponga anche un vincolo univoco nel database o una prenotazione atomica al salvataggio.
Casi d'uso
Evitare collisioni di percorsi nel CMS
Convalidi il percorso proposto e avvisi se un articolo usa già esattamente quello slug.
Controllare le build di siti statici
Confronti gli slug generati con i percorsi accettati prima di scrivere o distribuire i file.
Ripulire gli input di migrazione
Separi gli slug storici malformati dai nomi validi che semplicemente collidono durante la migrazione.
Domande frequenti
Quale formato di slug è accettato?
Una o più lettere minuscole o cifre, eventualmente separate da trattini singoli, mai iniziali, finali o ripetuti.
Cosa accade se uno slug non valido è anche nell’elenco?
Lo strumento restituisce un errore di input perché la verifica del formato ha sempre la precedenza.
Il confronto ignora maiuscole e minuscole?
No. Il confronto è esatto. Le maiuscole sono già vietate nella proposta e l’elenco non viene normalizzato.
Un risultato univoco prenota lo slug?
No. Verifica solo l’elenco inviato. Usi una scrittura atomica o un vincolo univoco contro acquisizioni simultanee.
Che cosa succede se l'elenco esistente contiene doppioni?
Nulla cambia: i valori ripetuti nell'elenco non modificano il risultato. L'elenco viene trattato come la fonte aggiornata del sito, quindi conviene ricaricarlo prima di ogni controllo quando più redattori possono creare indirizzi nello stesso momento.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/web/slug-uniqueness-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"slug":"summer-sale-2026","existing_slugs":["spring-sale-2026","clearance"]}'const res = await fetch("https://api.kit.forhosting.com/web/slug-uniqueness-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"slug": "summer-sale-2026",
"existing_slugs": [
"spring-sale-2026",
"clearance"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/slug-uniqueness-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"slug": "summer-sale-2026",
"existing_slugs": [
"spring-sale-2026",
"clearance"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/slug-uniqueness-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"slug":"summer-sale-2026","existing_slugs":["spring-sale-2026","clearance"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"slug":"summer-sale-2026","existing_slugs":["spring-sale-2026","clearance"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/slug-uniqueness-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"slug": "summer-sale-2026",
"existing_slugs": [
"spring-sale-2026",
"clearance"
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.slug_uniqueness_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_existing_slugs | 10000 |
max_slug_length | 200 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Usi il controllo nella pubblicazione e nella distribuzione
In un’API o migrazione, consideri gli errori di input come problemi qualitativi da correggere e le collisioni come decisioni di denominazione.
Domande tecniche
Quanto costa una richiesta API?
Il prezzo base è $0.002 per richiesta. La stessa logica deterministica può essere eseguita nel browser.