.htaccess, Apache web sunucusunda dizin düzeyinde yapılandırma yapmayı sağlayan bir dosyadır. Yönlendirmeler, erişim kuralları, önbellek başlıkları ve URL düzenleme — hepsi bu küçük dosyadan yönetilebilir. Bu rehberde .htaccess'in ne işe yaradığını ve pratik kullanımını açıklıyoruz.
İlgili içerikler: Nginx vs Apache · Virtual host yapılandırma · Linux dosya izinleri
.htaccess Nedir?
.htaccess (hypertext access), Apache'nin bir dizine ve alt dizinlerine özel yapılandırma uygulamasını sağlayan bir metin dosyasıdır. Ana sunucu yapılandırmasına erişimi olmayan kullanıcılar — örneğin paylaşımlı hosting'de — site davranışını .htaccess ile düzenler.
Dosya, içinde bulunduğu dizine yerleştirilir ve Apache her istekte onu okur. Bu esneklik bir avantajdır; ancak her istekte dosyanın okunması küçük bir performans maliyeti getirir.
.htaccess Ne İşe Yarar?
- Yönlendirme: Eski URL'leri yenisine, HTTP'yi HTTPS'e, www'suz adresi www'luya yönlendirme.
- URL düzenleme:
mod_rewriteile çirkin URL'leri temiz ve okunabilir hale getirme. - Erişim kontrolü: Belirli IP'leri engelleme veya bir dizini parola ile koruma.
- Önbellek ve sıkıştırma: Tarayıcı önbellek süresini ve sıkıştırmayı belirleme.
- Özel hata sayfaları: 404 ve 500 gibi hatalar için kendi sayfanızı gösterme.
Sık Kullanılan .htaccess Kuralları
Aşağıda en yaygın iki kural — HTTPS yönlendirmesi ve özel 404 sayfası — örneklenmiştir:
# HTTP'yi HTTPS'e yönlendir
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# Özel 404 sayfası
ErrorDocument 404 /404.html
Neden Nginx'te .htaccess Yok?
Nginx, .htaccess'i desteklemez — ve bu bilinçli bir tasarım tercihidir. Apache her istekte dizin dizin .htaccess dosyalarını arar; Nginx ise tüm yapılandırmayı başlangıçta tek seferde okur. Bu fark, Nginx'in performans avantajının nedenlerinden biridir. Nginx'te aynı işler server block yapılandırmasında, merkezi olarak yapılır.
Performans Notu
Ana sunucu yapılandırmasına erişiminiz varsa, kuralları .htaccess yerine doğrudan virtual host yapılandırmasına yazmak daha performanslıdır — Apache o zaman dizin dizin dosya aramaz. .htaccess, asıl olarak ana yapılandırmaya erişilemeyen paylaşımlı hosting senaryoları için vardır.
Sıkça Sorulan Sorular
.htaccess değişikliği için sunucuyu yeniden başlatmalı mıyım?
Hayır. Apache .htaccess'i her istekte yeniden okur; değişiklik kaydedildiği an geçerli olur. Bu, .htaccess'in en pratik yanıdır.
.htaccess dosyası neden görünmüyor?
Adı nokta ile başlayan dosyalar Linux'ta gizlidir. ls -la komutuyla veya dosya yöneticisinde "gizli dosyaları göster" seçeneğiyle görüntüleyebilirsiniz.
.htaccess çalışmıyor, neden?
Apache'de AllowOverride direktifi None ise .htaccess yok sayılır; ana yapılandırmada AllowOverride All olmalıdır. Ayrıca mod_rewrite modülünün etkin olduğundan emin olun.
KEYDAL hosting çözümleriyle .htaccess desteği ve doğru Apache yapılandırması ile sitenizi dilediğiniz gibi yönetin. KEYDAL hosting çözümleri