.htaccess
dosyası, Apache web sunucularında kullanılan bir yapılandırma dosyasıdır ve kök dizin ya da alt dizinlerde bulunabilir. Genellikle bir web sitesinde, kullanıcıların erişim haklarını, yönlendirmeleri, hata sayfalarını ve çeşitli yapılandırma seçeneklerini kontrol etmek için kullanılır. .htaccess
dosyaları çok küçük dosyalar olsa da, büyük etkilere sahiptir ve web sitesinin genel davranışını etkileyebilir. Bu dosyalar Apache sunucusuna özgüdür, ancak benzer özelliklere sahip diğer sunucu türlerinde de kullanılabilirler.
.htaccess’in Kullanım Alanları
.htaccess
dosyasının en yaygın kullanım alanları şunlardır:
- Yönlendirmeler (Redirects): Kullanıcıları bir URL’den diğerine yönlendirmek için.
- Güvenlik Önlemleri: IP adresi engelleme, dizin koruması ve erişim kontrolü gibi güvenlik önlemleri için.
- Cache Ayarları: Sunucuya gelen taleplerin sayısını azaltarak siteyi hızlandırmak için önbellekleme.
- Hata Sayfalarının Özelleştirilmesi: Örneğin, 404 (sayfa bulunamadı) veya 500 (iç sunucu hatası) gibi hata sayfalarını kişiselleştirmek.
- SEO Optimizasyonu: URL yapılarını SEO’ya uygun hale getirmek, www olmayan bir URL’yi www olan bir URL’ye yönlendirmek veya tam tersi.
.htaccess Dosyası Nerede Bulunur?
.htaccess
dosyası genellikle web sitenizin kök dizininde yer alır. Ancak, site yönetimi sırasında belirli alt dizinler için özel kurallar tanımlamak isterseniz, her dizine ayrı bir .htaccess
dosyası ekleyebilirsiniz. Örneğin, /blog/
dizini için farklı yönlendirme kuralları veya erişim izinleri belirleyebilirsiniz. .htaccess
dosyasını bulmak için FTP ile sunucunuza bağlanıp gizli dosyaları gösterebilirsiniz.
.htaccess’in Teknik Özellikleri
.htaccess
dosyasını kullanırken dikkat edilmesi gereken birkaç önemli teknik özellik bulunur:
- Dosya adı:
.htaccess
, önünde nokta bulunan bir dosya olduğundan, Unix tabanlı sistemlerde gizli dosya olarak kabul edilir. Bu yüzden FTP programlarında dosyayı görebilmek için gizli dosyaların görünümünü aktif etmeniz gerekebilir. - Yönetici Hakları:
.htaccess
dosyasında yapılan değişikliklerin geçerli olabilmesi için sunucunun, dosyaya yazma yetkisine sahip olması gerekir. Genellikle bu yetkiyi FTP veya hosting kontrol paneli üzerinden yönetebilirsiniz. - Yorum Satırları:
.htaccess
dosyasında yorum satırları#
karakteri ile başlar. Yani bir satırın başına#
koyduğunuzda, o satır sunucu tarafından dikkate alınmaz. Bu özellik, dosyanın içinde hangi kuralın ne için olduğunu belirtmek için kullanışlıdır.
Örnek Kullanım Alanları
Aşağıda .htaccess
dosyası ile sıkça yapılan bazı uygulamalara dair örnekler verilmiştir:
1. URL Yönlendirme
Web sitenizdeki eski sayfa URL’lerini yeni sayfalara yönlendirmek için kullanılır. Örneğin, bir sayfanın adresi değiştiyse eski adresi yeni adrese yönlendirebilirsiniz.
Redirect 301 /eski-sayfa.html http://www.siteadi.com/yeni-sayfa.html
Bu satır, /eski-sayfa.html
adresine gelen tüm ziyaretçileri yeni sayfa olan http://www.siteadi.com/yeni-sayfa.html
adresine yönlendirir.
2. www Olmayan Domaini www’ye Yönlendirme
Birçok SEO uzmanı, tüm ziyaretçileri tek bir URL yapısına yönlendirmenin, SEO açısından daha iyi olduğunu savunur. Aşağıdaki kod, www
olmayan ziyaretçileri, www
içeren versiyona yönlendirmektedir:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^siteadi\.com [NC]
RewriteRule ^(.*)$ http://www.siteadi.com/\ [L,R=301]
3. 404 Hata Sayfası Oluşturma
Kullanıcılar sitenizde var olmayan bir sayfaya erişmeye çalıştığında, onları özel bir 404 hata sayfasına yönlendirebilirsiniz. Bu sayfa, kullanıcı deneyimini artırabilir ve kullanıcıların sitenizde daha uzun süre kalmasını sağlayabilir.
ErrorDocument 404 /404.html
SEO İçin .htaccess İpuçları
- Canonical URL’ler: Web sitenizin farklı sürümleri (www’li, www’siz) aynı içeriklere sahipse, Google bunu yinelenen içerik olarak değerlendirebilir. Bu nedenle tüm trafik tek bir URL’ye yönlendirilmelidir.
- Gzip Sıkıştırma: Web sitenizin daha hızlı yüklenmesini sağlamak için
.htaccess
dosyası aracılığıyla Gzip sıkıştırma kullanabilirsiniz. Gzip, HTML, CSS ve JavaScript dosyalarınızın boyutunu küçülterek sayfanın daha hızlı yüklenmesini sağlar.
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/json
</IfModule>
Örnek Hata Sayfası Tablosu
Ziyaretçilerin karşılaşabileceği hata sayfalarını ve bu sayfalara nasıl yönlendirme yapabileceğinizi bir tablo ile açıklayalım:
Hata Kodu | Hata Türü | Yönlendirme |
---|---|---|
404 | Sayfa Bulunamadı | ErrorDocument 404 /404.html |
500 | İç Sunucu Hatası | ErrorDocument 500 /500.html |
403 | Erişim Engellendi | ErrorDocument 403 /403.html |
401 | Yetkisiz Erişim | ErrorDocument 401 /401.html |
.htaccess ile Güvenlik Ayarları
.htaccess
dosyası sadece yönlendirme ve SEO ayarları için değil, aynı zamanda güvenlik önlemleri için de kullanılabilir. Örneğin, belirli IP adreslerini engelleyebilir veya belirli dosya türlerine erişimi kısıtlayabilirsiniz.
1. Belirli Bir IP’yi Engelleme
Web sitenizi ziyaret etmesini istemediğiniz IP adreslerini engelleyebilirsiniz. Bu özellikle spam göndericileri veya kötü niyetli kişileri engellemek için kullanışlıdır.
Order Deny,Allow
Deny from 192.168.1.1
2. Dizin Erişimini Kısıtlama
Web sitenizin dizin yapısına dışarıdan erişimi engelleyerek, ziyaretçilerin site dosyalarınıza erişmesini önleyebilirsiniz. Bunun için aşağıdaki kodu .htaccess
dosyanıza ekleyebilirsiniz:
Options -Indexes
.htaccess
dosyası, Apache tabanlı sunucularda güçlü bir araçtır ve web sitenizi daha verimli, güvenli ve SEO dostu hale getirmek için kullanılabilir. Ancak, bu dosyada yapılan hatalı bir yapılandırma, web sitenizin çalışmamasına veya beklenmeyen hatalara yol açabilir. Bu nedenle .htaccess
dosyasını düzenlerken dikkatli olmalı, değişiklik yapmadan önce yedek almayı unutmamalısınız. Bu dosya, web geliştiricilerine büyük bir esneklik sağlasa da, kullanımında özen ve dikkat gerekmektedir.