DleHub
Derya profil resmi
Yeni

Kısa Link Yönlendirici (shortlink)

Geliştirici: Derya • Yayın: Dün, 15:30
Kısa Link Yönlendirici (shortlink)

/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=s dalı
  • engine/modules/shortlink.php — bul, say, 302
  • engine/inc/shortlink.php — panel, klasik POST, AJAX yok (controller yaması yok)
  • TR/EN website.lng ve adminpanel.lng

/s/kod/ açılmıyorsa

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

  • custom.s yoksa kural yazılmamış. Elle ekle veya engine/data/rules.json yazma 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=kod dene — bu yolda FastRoute dağıtım yapmaz, doğrudan case "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.



Dosya İndirme Kilitli

Changelog

1.0: /s/{code}/ kuralı, tıklama sayacı, 302 yönlendirme.

7 Gösterim 0 Yorum
Bu İçeriği DeğerlendirHenüz oy yok
Harika (+10p)
❤
0
Çalışıyor (+5p)
✅
0
Yararlı (+5p)
🚀
0
Hatalı (-5p)
❌
0
Sorum Var (0p)
❓
0
Teşekkürler (+2p)
🙏
0

Geliştirici Tartışmaları

0 yorum

Yorum ekleme

Hesapla giriş:
Kod okunmuyorsa yenilemek için görsele tıklayın