Herkese selamlar,
Bu yazımda .htaccess dosyasının anlamını ve ne işe yaradığını anlatıyor olacağım.
.htaccess nedir
.htaccess, dizinlerin, dosyaların ve diğer kaynakların davranışını kontrol etmek için Apache çalıştıran web sunucuları tarafından kullanılan bir yapılandırma dosyasıdır. Sunucu yapılandırma dosyalarını değiştirmek zorunda kalmadan, her dizin bazında yapılandırma değişiklikleri yapmak için bir yol sağlar.
.htaccess dosyalarıyla kimlik doğrulama, erişim kontrolü, URL yeniden yazma, MIME tipi işleme, önbelleğe alma ve diğer birçok ayar için kurallar oluşturabilirsiniz. Bu kurallar, web sitesi güvenliğini, performansını artırmak ve daha iyi bir kullanıcı deneyimi sağlamak için kullanılabilir.
.htaccess dosyaları en çok ne için kullanılır?
.htaccess dosyalarının en yaygın kullanımlarından bazıları şunlardır:
Parola korumalı dizinler veya dosyalar
URL’leri farklı bir konuma yönlendirme
Özel hata sayfaları tanımlama
Belirli IP adreslerine veya aralıklarına erişimi engelleme
Web sayfalarının önbelleğe alınmasını etkinleştirme veya devre dışı bırakma
HTTP istekleri ve yanıtları için özel başlıklar ayarlama
Tüm web sunucularının .htaccess dosyalarını desteklemediğini ve bazı barındırma sağlayıcılarının kullanımlarında kısıtlamalar olabileceğini unutmamak önemlidir. Ek olarak, yanlış veya kötü amaçla yapılandırılmış .htaccess dosyaları web sitesi hatalarına veya güvenlik açıklarına neden olabilir, bu nedenle bunları dikkatli bir şekilde kullanmak ve canlı bir siteye dağıtmadan önce her zaman değişiklikleri test etmek önemlidir.
Örnek .htaccess kodu ve anlamı
İşte bir .htaccess kodu örneği ve ne işe yaradığı:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
Bu .htaccess kodu, www olmayan URL’leri karşılık gelen www URL’lerine yönlendirmek için mod_rewrite kullanır. İşte her satırın yaptığı:
RewriteEngine On – Yeniden yazma motorunu etkinleştirir.
RewriteCond %{HTTP_HOST} ^example.com [NC] – HTTP_HOST başlığının “example.com” (büyük/küçük harfe duyarsız) ile eşleşip eşleşmediğini kontrol eden bir koşul ayarlar.
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] – Gerçek yeniden yazma kuralını belirtir. Herhangi bir URL’yi (^(.*)$ normal ifadesiyle temsil edilir) aynı URL’ye ancak “www” ile yeniden yönlendirir. başa eklendi (http://www.example.com/$1). Satırın sonundaki [L,R=301], Apache’ye başka kuralları ([L]) işlemeyi durdurmasını ve tarayıcıya bir 301 yeniden yönlendirme durum kodu ([R=301]) göndermesini söyler.
Genel olarak, .htaccess kodu, web sitesine gelen tüm trafiğin sitenin www sürümüne yönlendirilmesini sağlar, bu da SEO’ya yardımcı olabilir ve kullanıcı deneyimini geliştirebilir.