RO
Setări

Alege cum vrei să vezi acest website.

Limbă

Selectează limba preferată pentru acest website.

Slug-uri românești: diacritice, unicitate și rute

Dezvoltare web și Laravel

Întrebare · Ionel Nistor · 53 minute în urmă · 3 vizualizări

dezvoltare url slug diacritice

Articol editorial, pregătit pentru bază de cunoștințe. Nu este o conversație simulată a comunității.

URL-urile prietenoase folosesc slug-uri derivate din titlu. Română introduce diacritice și coliziuni când două titluri diferite se transliterează identic. Întrebarea explorează generarea, unicitatea în DB și politica de redirect când editorul schimbă titlul, astfel încât link-urile partajate să rămână valide sau să fie înlocuite explicit.

Generare și normalizare



Helperul `Str::slug` transliterează și înlocuiește spațiile; verifică dacă păstrezi sau elimini diacriticele conform SEO dorit. Unele proiecte păstrează `ăâîșț` în URL dacă serverul și copy-link tratează encoding corect. Limita lungimii evită URL-uri fragmențate în clienti email. Caracterele interzise în path (`?`, `#`) trebuie eliminate înainte de salvare; validarea la input previne erori 400 la routare.

Unicitate la inserare



La creare, verifică existența slug-ului și adaugă sufix `-2`, `-3` sau hash scurt. Unique index pe coloană garantează integritatea sub concurență — prinde excepția și regenerează, nu te baza doar pe check-then-insert. Slug-ul poate rămâne stabil chiar dacă titlul se editează, ca să nu rupi link-uri externe. Observer Eloquent poate centraliza generarea, dar păstrează idempotenta la update parțial (doar body schimbat).

Rute și model binding



Ruta `{thread:slug}` rezolvă modelul după coloană non-id dacă configurezi getRouteKeyName. 404 apare când slug vechi nu mai există — păstrează tabel de redirect sau coloană `previous_slug` dacă politica e să actualizezi slug la rename. Cache-ul rutelor nu afectează binding-ul, dar schimbările de nume de parametri cer `route:clear`. Scope global pe model poate ascunde înregistrări draft — binding-ul returnează 404 corect, nu leak de conținut nepublicat.

Căutare și indexare externă



Slug-ul nu înlocuiește titlul vizibil în pagină; motoarele folosesc conținutul real. Evită schimbări frecvente de slug fără redirect 301. Pentru categorii, slug-uri scurte și stabile bat titluri marketing schimbătoare. Liste alfabetice pe slug transliterat pot diferi de sortarea după titlul afișat — documentează alegerea pentru moderatori.

Ionel Nistor · 53 minute în urmă

Spune dacă slug-urile păstrează diacritice sau le transliterează — comportamentul diferă la copy/paste în unele clientele mail.

0 Util

Autentifică-te ca să scrii

Discuții din aceeași categorie