Bosh sahifa Wiki Slug

Slug

Slugweb sahifa, maqola, kategoriya yoki boshqa resource nomini URL ichida o‘qilishi qulay va barqaror segment sifatida ifodalovchi qisqa matn. Slug odatda sarlavhadan yaratiladi va kichik harflar, harf-raqam hamda defisdan foydalanadi.

Masalan:

Sarlavha: Web dasturlash asoslari
Slug: web-dasturlash-asoslari

Slug resource’ning database primary keyi bo‘lishi shart emas. U ko‘pincha public URL identifikatori sifatida ishlatiladi.

URL ichidagi o‘rni

Slug odatda path segmentida joylashadi:

https://uzbekdevs.uz/wiki/web-dasturlash-asoslari

Bu yerda web-dasturlash-asoslari slug hisoblanadi.

Bir route ichida slug resource’ni topish uchun ishlatilishi mumkin.

Sarlavhadan yaratish

Slug generation jarayoni odatda:

  1. matnni lowercase qilish;
  2. Unicode yoki transliteration siyosatini qo‘llash;
  3. bo‘sh joylarni defisga almashtirish;
  4. ruxsat etilmagan belgilarni olib tashlash;
  5. takroriy defislarni birlashtirish;
  6. bosh va oxirgi defisni olib tashlash;
  7. uzunlikni cheklash

bosqichlaridan iborat.

Defis va underscore

SEO va o‘qish qulayligi uchun defis keng tarqalgan:

web-dasturlash

Underscore:

web_dasturlash

ham texnik jihatdan ishlashi mumkin, lekin loyiha bo‘ylab yagona convention saqlanadi.

Slug parser separatorni aniq belgilaydi.

Unicode slug

Slug faqat lotin harflaridan iborat bo‘lishi shart emas.

Unicode slug:

o‘zbekcha-maqola

ko‘rinishida bo‘lishi mumkin.

Browser URLni percent-encoded shaklda yuborishi ehtimoli bor.

Search engine va framework Unicode URLlarni qo‘llab-quvvatlaydi, lekin interoperability test qilinadi.

Transliteration

Ba’zi loyihalar kirill, arab yoki boshqa yozuvlarni lotinga transliteratsiya qiladi.

Bu:

  • URLni qisqa qilish;
  • copy-paste;
  • eski tizimlar bilan moslik;
  • analytics

uchun qulay bo‘lishi mumkin.

Transliteration bir xil matndan doim bir xil slug yaratishi kerak.

Unique slug

Bir xil sarlavha bir nechta resource’da uchrashi mumkin.

Unique qilish usullari:

django
django-2
django-3

yoki:

django-2026
django-a1b2

Database unique constraint race conditionni oldini oladi.

Faqat applicationda oldindan tekshirish yetarli emas.

Scope bo‘yicha uniqueness

Slug butun sayt bo‘yicha yoki ma’lum parent ichida unique bo‘lishi mumkin.

Masalan:

/wiki/cache
/blog/cache

ikki xil route’da bir xil slugga ruxsat berilishi mumkin.

Yoki kategoriya ichida:

/category-a/item
/category-b/item

scope database constraintda aks etadi.

Primary key bilan farqi

Primary key odatda ichki barqaror identifikator.

Slug esa human-readable public nom.

Sarlavha o‘zgarsa slug o‘zgarishi mumkin.

Resource relationshiplari slugga emas, ichki IDga bog‘lanishi ko‘pincha barqarorroq.

Immutable slug

Ayrim saytlar slugni yaratilgandan keyin o‘zgartirmaydi.

Afzalligi:

  • eski link buzilmaydi;
  • analytics barqaror;
  • backlink saqlanadi;
  • cache key o‘zgarmaydi.

Sarlavha o‘zgarsa URL avvalgi matn bilan qolishi mumkin.

Mutable slug

Slug sarlavha bilan birga yangilanishi mumkin.

Bunda eski URLdan yangi URLga redirect yaratiladi.

Redirect history yoki oldingi sluglar jadvali saqlanadi.

Aks holda external linklar 404ga tushadi.

Redirect

Slug o‘zgarganda odatda permanent redirect ishlatiladi:

/eski-slug → /yangi-slug

Redirect loop va chainlar tozalanadi.

Eski slug keyinchalik boshqa resource’ga berilsa chalkashlik yuzaga kelishi mumkin.

Reserved slug

Ayrim pathlar application uchun maxsus:

  • admin;
  • api;
  • login;
  • static;
  • new;
  • edit;
  • settings.

User generated slug shu nomlarga teng bo‘lsa route conflict yuz beradi.

Reserved ro‘yxat validationda tekshiriladi.

Uzunlik

Juda uzun sarlavhani to‘liq slugga aylantirish URLni noqulay qiladi.

Slug ma’lum belgilar sonida kesilishi mumkin.

Kesish:

bilan bajariladi.

Faqat byte bo‘yicha kesish UTF-8 belgini buzishi mumkin.

Stop word

Ba’zi generatorlar “va”, “uchun”, “bilan” kabi stop wordlarni olib tashlaydi.

Bu slugni qisqartiradi.

Biroq avtomatik olib tashlash ma’noni o‘zgartirishi mumkin.

Qoidalar tilga mos va deterministik bo‘ladi.

SEO

Slug sahifa mavzusini tushunarli ko‘rsatishi mumkin.

Yaxshi slug:

  • qisqa;
  • mazmunli;
  • o‘qiladigan;
  • keraksiz ID va parameterlarsiz;
  • barqaror.

Slugning o‘zi rankingni kafolatlamaydi.

Content, title, link va technical SEO muhimroq.

Security

Slug user inputidan yaratilsa:

  • path traversal;
  • encoded slash;
  • . va ..;
  • control character;
  • reserved URL;
  • Unicode homograph;
  • juda uzun input

tekshiriladi.

Routingdan oldin decode va normalization qoidalari aniq bo‘ladi.

Case sensitivity

URL path serverga qarab case-sensitive bo‘lishi mumkin.

Django va django ikki routega aylanishi ehtimoli bor.

Slug odatda lowercase qilinadi va canonical URLga redirect beriladi.

Duplicate content kamayadi.

Lokalizatsiya

Bir maqola bir nechta tilda bo‘lsa har til uchun boshqa slug berilishi mumkin:

/uz/wiki/tarmoq
/en/wiki/network

Resource ichki ID bilan bir xil qoladi. Til almashtirish linki mos translated resource’ga olib boradi. Tarjima hali mavjud bo‘lmasa qaysi fallback ishlashi aniq belgilanadi.

Slug tarixi

Oldingi sluglar alohida jadvalda saqlansa external link va bookmarklar ishlashda davom etadi. Redirect target har doim joriy canonical slugga olib boradi. Eski slugni boshqa maqolaga qayta biriktirish collision va noto‘g‘ri redirect yaratishi mumkin.

Database qidiruvi

Slug bo‘yicha tez lookup uchun index yaratiladi. Multi-tenant yoki kategoriya scope’i bo‘lsa composite unique index ishlatiladi.

Manual slug

Editor avtomatik yaratilgan slugni publishdan oldin o‘zgartirishi mumkin. Validation va unique constraint manual qiymatga ham bir xil qo‘llanadi.

Bog‘liq tushunchalar

Slug, URL, Path segment, Permalink, Canonical URL, Redirect, Transliteration, Unicode, SEO, Routing, Unique constraint