URL’larımı bir .htaccess dosyası ile nasıl yönlendirebilir ve yeniden yazabilirim?
Eğer bir Apache sunucusu üzerinde bir web sitesi çalıştırıyorsanız, .htaccess dosyası elinizdeki en güçlü araçlardan biridir. URL’lerinizin nasıl davrandığını kontrol etmenizi sağlar — yönlendirmelerden temiz URL yeniden yazımına — gerçek sunucu yapılandırmanızı değiştirmeye gerek kalmadan.
Bu yazıda, .htaccess kullanarak URL yönlendirmesi ve yeniden yazımı hakkında temel bilgileri, net örnekler ve açıklamalarla ele alacağız.
.htaccess Dosyası Nedir?
.htaccess, Hypertext Access anlamına gelir. Apache tabanlı web sunucularında kullanılan bir yapılandırma dosyasıdır ve sunucu davranışında dizin düzeyinde değişiklikler yapmanıza olanak tanır.
Şunları yapabilirsiniz:
Bir URL’den diğerine trafik yönlendirmek
Temiz URL’ler oluşturmak (örneğin, /about yerine /about.php)
Belirli sayfalara erişimi kısıtlamak
HTTPS’yi etkinleştirmek
Ve daha fazlası
URL’leri Yönlendirme
1. 301 Kalıcı Yönlendirme
Bir sayfa kalıcı olarak yeni bir URL’ye taşındığında bunu kullanın.
Redirect 301 /old-page.html https://yourdomain.com/new-page.html2. 302 Geçici Yönlendirme
Yönlendirmenin geçici olduğu durumlarda bunu kullanın.
Redirect 302 /temp-page.html https://yourdomain.com/coming-soon.html3. mod_rewrite ile Yönlendirme
Ayrıca RewriteRule kullanarak yönlendirme yapabilirsiniz:
RewriteEngine On
RewriteRule ^old-page$ https://yourdomain.com/new-page [R=301,L]URL’leri Yeniden Yazma (Temiz URL’ler)
URL yeniden yazma, URL’leri daha kullanıcı ve SEO dostu hale getirmek için kullanılır. Örneğin, bunun yerine:
https://example.com/product.php?id=123Şunu kullanabilirsiniz:
https://example.com/product/1231. Temel Yeniden Yazma Kuralı
RewriteEngine On
RewriteRule ^product/([0-9]+)$ product.php?id=$1 [L]Bu, Apache’ye şunu söyler:
Birisi /product/123’e eriştiğinde
Bunu içsel olarak product.php?id=123 olarak yeniden yaz
2. .php Uzantısını Kaldır
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)$ $1.php [L]Bu, kullanıcıların example.com/about yerine example.com/about.php’ye erişmesini sağlar.
En İyi Uygulamalar
Değişiklik yapmadan önce her zaman .htaccess dosyanızı yedekleyin.
Bir eşleşme bulunduğunda daha fazla kuralın işlenmesini durdurmak için [L] kullanın.
Yönlendirmelerinizi httpstatus.io gibi araçlarla test edin.
Aynı blokta Redirect ve RewriteRule’ü fazla karıştırmayın — tutarlılık için RewriteRule’u tercih edin.
Sonuç
.htaccess dosyası, Apache tabanlı web siteniz üzerinde ayrıntılı kontrol sağlayan güçlü bir yapılandırma aracıdır — genellikle ana sunucu dosyalarınıza dokunmadan. İster eski sayfaları yönlendirmek, ister HTTPS’yi zorlamak, ister temiz URL’ler aracılığıyla SEO’yu geliştirmek, ister hassas alanlara erişimi kısıtlamak isteyin, .htaccess tüm bunları sadece birkaç satır kodla mümkün kılar.
En azından birkaç .htaccess direktifini anlamak ve ustalaşmak, web sitenizin performansını, güvenliğini ve kullanılabilirliğini önemli ölçüde artırabilir. Bu, site yapısındaki değişikliklere hızlı bir şekilde yanıt vermenizi, bozuk bağlantıları önlemenizi ve ziyaretçileriniz için tutarlı bir deneyim sağlamanızı sağlar.
Pratik Örnek: Eski URL’leri Yeni URL’lere Yönlendirme
Blogunuzu yeniden yapılandırdığınızı ve eski bir yazıdan yeni bir konuma trafik yönlendirmek istediğinizi hayal edin:
Bu basit satır, şunu garanti eder:
Arama motorları SEO değerini yeni URL’ye aktarır
Kullanıcılar 404 sayfasına düşmez
Yönlendirmeler, 301 (kalıcı) durum kodu ile anında gerçekleşir


