URL Yönetimi ve Dinamik Rota Sisteminin Teknik Analizi
Son güncelleme: 20 Ocak 2026
Admin panelde slug ayarları "Yapılandırma bulunamadı" hatası veriyordu.
DB: "blog" → Klasör: "Blog" ❌
findActualModuleName() fonksiyonu ile case-insensitive arama eklendi.
Yıldırım Panjur sitesinde blog detay URL'ini /haberler/... olarak ayarladın ama sistem hala /blog/... kullanıyordu.
// Sadece index slug kontrol ediliyordu if ($slug1 === $moduleSlugMap['index']) { // show sayfasına yönlendir }
// Önce show slug, sonra index slug if ($slug1 === $moduleSlugMap['show']) { return show; } if ($slug1 === $moduleSlugMap['index']) { return show; // backward compat. }
Cache key'ler tenant-specific değildi! Tüm tenant'lar aynı cache key'i paylaşıyordu. Bir tenant slug değiştirince diğerinin değeri eziliyordu.
module_multilang_slug_blog_show_tr
// Tüm tenant'lar aynı key'i kullanıyor!
module_multilang_slug_3_blog_show_tr // Tenant ID eklendi: izolasyon sağlandı
Sitede gezinirken livewire/update isteği 419 hatası veriyordu. CartWidget ve diğer Livewire bileşenleri çalışmıyordu.
ResponseCache, tüm sayfaları max-age=3600 ile cache'liyordu. CSRF token eski kalıyordu.
Livewire endpoint'leri cache'den hariç tutuldu:
if (str_starts_with($path, 'livewire')) { return false; }
| Dosya | Değişiklik | Sorun # |
|---|---|---|
ModuleSlugSettingsComponent.php |
Case-insensitive loadModuleData() | #1 |
ModuleSlugService.php |
findActualModuleName() + Tenant-specific cache key | #1 #3 |
DynamicRouteResolver.php |
Show slug desteği eklendi | #2 |
TenantCacheProfile.php |
Livewire endpoint'leri exclude | #4 |