21 Eylül 2026
Apache .htaccess ile 404 Redirect Nasıl Yapılır?
Apache sunucularda `.htaccess`, Redirect, RedirectMatch ve mod_rewrite kullanarak eski URL’leri doğru hedeflere yönlendirme rehberi.

Apache üzerinde eski URL’leri yeni adreslere yönlendirmek için birkaç farklı araç vardır. En yaygın olanları Redirect, RedirectMatch ve mod_rewrite kurallarıdır. Doğru seçim, URL eşleştirmesinin ne kadar karmaşık olduğuna bağlıdır.
Basit URL değişikliklerinde Redirect
Eski bir sayfanın yeni adresi belliyse mod_alias üzerinden basit bir redirect okunabilir ve sürdürülebilir bir çözümdür.
Örnek:
Redirect 301 /old-page https://example.com/new-pageİçerik kalıcı olarak taşındıysa 301; değişiklik geçiciyse uygun temporary redirect kullanılmalıdır.
RedirectMatch ne zaman kullanılır?
Birden fazla URL belirli bir kalıba uyuyorsa RedirectMatch regex tabanlı eşleştirme sağlar. Ancak genel regex kuralları yazarken beklenmeyen URL’lerin yanlış hedeflere yönlenmemesine dikkat edilmelidir.
Daha karmaşık kurallar için mod_rewrite
Query string, koşullu eşleştirme veya daha ayrıntılı URL dönüşümlerinde RewriteRule ve RewriteCond gerekebilir.
Örnek bir kalıcı yönlendirme:
RewriteEngine On
RewriteRule ^old-page$ /new-page [R=301,L]Kuralların sırası önemlidir. Çok genel bir kural daha özel kurallardan önce çalışırsa beklenmeyen redirect davranışları oluşabilir.
404 sayfası ile redirect aynı şey değildir
ErrorDocument 404 kullanarak özel bir 404 sayfası göstermek mümkündür. Ancak özel hata sayfası göstermek URL’nin başka bir adrese taşındığı anlamına gelmez. Gerçekten bulunamayan içerik için HTTP status 404 korunmalıdır.
Her 404’ü ana sayfaya göndermeyin
Örneğin /products/blue-shoe artık yoksa ve yerine geçen /products/blue-shoe-v2 varsa redirect anlamlıdır. Ama /random-bot-path-8292 gibi bir URL’yi ana sayfaya 301 göndermek hiçbir kullanıcı problemini çözmez.
Bu nedenle redirect tablosu gerçek eski-yeni URL ilişkilerine dayanmalıdır.
.htaccess dosyası büyüdükçe ne olur?
Yüzlerce veya binlerce tekil redirect zamanla yönetim problemi oluşturabilir. Migration sonrası dev bir .htaccess dosyası üretmek yerine kuralları gruplamak, uygulama seviyesinde yönetmek veya dinamik redirect sisteminden yararlanmak daha sürdürülebilir olabilir.
no404 ile Apache üzerindeki gerçek 404 talepleri
no404, Apache’nin önünde veya uygulama katmanında gerçek 404 taleplerini görünür hale getirerek hangi eski URL’lerin gerçekten ziyaret edildiğini belirlemenize yardımcı olabilir.
Böylece .htaccess dosyasına her ihtimali eklemek yerine yalnızca değer taşıyan URL’leri yönlendirebilirsiniz.
Sonuç
Apache’de basit redirect’ler için Redirect, desen bazlı işlemler için RedirectMatch, karmaşık koşullar için mod_rewrite kullanılabilir. Ancak hangi teknik kullanılırsa kullanılsın temel kural aynıdır: yalnızca gerçekten taşınmış ve anlamlı yeni hedefi bulunan URL’leri redirect edin.