/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
engine/engine.php—?do=sdalıengine/modules/shortlink.php— bul, say, 302engine/inc/shortlink.php— panel, klasik POST, AJAX yok (controller yaması yok)- TR/EN
website.lngveadminpanel.lng
/s/kod/ açılmıyorsa
Hepsi aynı “yayın bulunamadı” mesajını basar. Ayırmak için admin.php?mod=friendlyurl:
custom.syoksa kural yazılmamış. Elle ekle veyaengine/data/rules.jsonyazma iznine bak.- Kural var ama
/{category}/’nin altındaysa sürükleyip üste al, kaydet. friendlyhelp yüklüyse sayfada da yazar zaten. - Liste doğru, hâlâ yoksa yama düşmüş olabilir.
index.php?do=s&code=koddene — bu yolda FastRoute dağıtım yapmaz, doğrudancase "s"çalışır. Bu gider,/s/kod/gitmezse sorun kural sırasıdır. İkisi de gitmezse eklenti hata loguna bak.
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.