/s/kampanya/ açılınca kayıt bulunur, tıklama artar, tarayıcı 302 ile hedefe gider. Yönetim: admin.php?mod=shortlink. SEO kapalıysa adres index.php?do=s&code=kampanya olur; panel zaten o biçimi gösterir.

İki katman var. Biri tablo: {prefix}_shortlinks (prefix varsayılan dle ise phpMyAdmin’de dle_shortlinks). Kolonlar: kod, hedef, başlık, hits, active, lastdate. Kod unique, en fazla 64 karakter, sadece a-z 0-9 _ -.

Diğeri DLE’nin SEO katmanı. Kurulum DLEUrl::AddRule('s', '/s/{code}/', '/index.php?do=s&code={code}', 'before category') yazar, engine/data/rules.json içine girer, FastRoute önbelleği (engine/cache/system/route.rules.php) silinir. Dördüncü parametre şart. Vermezsen kural listenin sonuna düşer; DLE’nin /{category}/ kuralı /s/faq/ adresini de yutar çünkü desen /([^.]+)(?:/)? ve [^.]+ içinde slash da var. Sonuç: “bu adreste yayın yok”. Kural SEO URL ekranında custom.s diye görünür. Silerken DLEUrl::DeleteRule('custom.s') — custom. öneki unutulursa kural kalır.

Kurulum

ZIP’teki shortlink.xml → Eklenti yönetimi → yükle, aktif et. Tablo kurulur, kural eklenir, engine/engine.php içine case "s" gelir, menüye kayıt düşer. Panelden kod + hedef yaz, /s/kod/ dene.

SQL kancaları

Kur / güncelle / aktif: tablo yoksa oluşturulur (aynı şema, tekrar çalıştırılabilir). Pasifte tablo durur. Eklentiyi silince tablo da gider, içindeki linkler kaybolur. Tek bir linki pasif yapmak başka şey: o kod 404 verir, kural durur. Eklentiyi pasif etmek kuralı da siler.

Dosyalar

/s/kod/ açılmıyorsa

Hepsi aynı “yayın bulunamadı” mesajını basar. Ayırmak için admin.php?mod=friendlyurl:

Güvenlik

301 değil 302: tarayıcı kalıcı tutarsa sayaç durur. Hedefte script / data / vbscript şemaları yok, satır sonu karakterleri temizlenir. Aynı kontrol yönlendirmede de var. Bilinmeyen kod 404. CSRF, safesql, grup 1.

Site içi yol yazarsan (/haber/ornek.html) tam adrese çevrilir.

Kaldırma / pasif

Pasif: menü ve custom.s kalkar, tablo kalır. Sil: tablo da gider, kural silinir. İkon public/adminpanel/images/shortlink.png.

/s/ önekini değiştirirsen hem AddRule yolunu hem DeleteRule('custom.s') anahtarını birlikte değiştir.



Dosya İndirme Kilitli