.htaccess nedir?
.htaccess, Apache web sunucusunda dizin bazında yapılandırma yapmanızı sağlayan metin dosyasıdır. Yönlendirme, erişim kısıtlama, önbellek ve güvenlik başlıkları gibi ayarlar sunucu ana yapılandırmasına dokunmadan bu dosyayla tanımlanır.
Özellikle paylaşımlı hostingde, sunucu yapılandırmasına erişiminiz olmadığında çok kullanışlıdır.
Nasıl çalışır?
Apache, bir isteği işlerken ilgili dizinde ve üst dizinlerde .htaccess dosyası arar, bulduğu kuralları uygular. Kurallar mod_rewrite, mod_headers ve mod_expires gibi modüller aracılığıyla çalışır.
Her istekte dosya okunduğu için çok uzun veya karmaşık .htaccess dosyaları performansı hafifçe etkileyebilir. Bu nedenle mümkünse ana sunucu yapılandırması tercih edilir.
Sunucu ve hosting ortamında
Yaygın kullanım alanları arasında HTTP’den HTTPS’e yönlendirme, güzel URL’ler (WordPress permalink), belirli IP’lere erişim engelleme, dizin listelemeyi kapatma ve parola korumalı dizinler bulunur. cPanel ve DirectAdmin gibi paneller bazı bu ayarları arayüzden yapıp dosyayı otomatik düzenler.
Nginx sunucularda .htaccess desteklenmez; benzer kurallar sunucu yapılandırmasına yazılır. Hatalı bir .htaccess sitenin 500 hatası vermesine neden olabilir.
Nasıl uygulanır?
- Değiştirmeden önce dosyanın yedeğini alın.
- Dizin listelemeyi
Options -Indexesile kapatın. - Hassas dosyalara (örneğin yapılandırma ve yedek dosyaları) erişimi engelleyin.
- HTTPS yönlendirmesini ve güvenlik başlıklarını tanımlayın.
- Kuralları küçük adımlarla ekleyip her adımdan sonra siteyi test edin.
.htaccessdosyasının kendisine web erişimini engelleyin ve izinlerini 644 tutun.
Sık yapılan hatalar
- Yedek almadan düzenleme yapıp siteyi çökertmek.
- Aynı kuralları birden fazla kez ekleyerek yönlendirme döngüsü oluşturmak.
- Kaynağı güvenilmeyen kuralları kopyalayıp yapıştırmak.
- Nginx sunucuda
.htaccessçalışacağını sanmak.
Sık sorulan sorular
.htaccess ne işe yarar?
Apache sunucuda yönlendirme, erişim kontrolü, önbellek ve güvenlik ayarlarını dizin bazında yapmanızı sağlar.
.htaccess dosyası nerede bulunur?
Genellikle sitenin kök dizininde (örneğin public_html) bulunur. Nokta ile başladığı için gizli dosyadır; dosya yöneticisinde gizli dosyaları göstermeniz gerekir.
.htaccess Nginx’te çalışır mı?
Hayır. Nginx bu dosyayı okumaz; eşdeğer ayarlar Nginx yapılandırma dosyalarına yazılmalıdır.
Bu terimin geçtiği rehberler
- Dosya yükleme güvenliği: uzantı, MIME, depolama ve çalıştırma engeliDosya yükleme formlarını güvenli hale getirin: uzantı beyaz listesi, gerçek MIME denetimi, rastgele dosya adı, web kökü dışında depolama ve yükleme dizininde betik çalıştırmayı engelleme.
- Kontrol panelinde SSL otomatik yenileme sorunları ve çözümleriPanelin otomatik SSL yenilemesi neden başarısız olur? DNS, 80. port, yönlendirme, CAA kaydı ve proxy kaynaklı sorunları komutlarla teşhis edip çözmeyi anlatan sistematik rehber.
- Apache HTTP Server kurulumu ve sertleştirmeApache HTTP Server kurulumu ve sertleştirme: paket kurulumu, ServerTokens ve TraceEnable ayarları, dizin listelemeyi kapatma, güvenlik başlıkları ve yapılandırma testi.
- Hacklenen web sitesi nasıl temizlenirHacklenen web sitesini temizleme rehberi: siteyi izole etme, kanıt toplama, zararlı dosyaları bulma, parolaları yenileme, temiz kurulum ve yeniden saldırıyı önleme.
İlgili terimler
- Bant genişliğiBir bağlantıdan birim sürede aktarılabilen veri miktarı.
- Bulut sunucu (cloud server)İhtiyaca göre hızla oluşturulup ölçeklenen, genellikle kullanıldığı kadar ödenen sanal sunucu.
- CageFSHer hosting hesabını yalıtılmış, sanal bir dosya sisteminde çalıştıran teknoloji.
- CloudLinuxPaylaşımlı hosting için kaynak yalıtımı ve güvenlik özellikleri sunan Linux dağıtımı.
- ColocationKendi sunucunuzu bir veri merkezinde barındırma hizmeti.
- cPanelDünyada en yaygın kullanılan hosting kontrol panellerinden biri; hesap düzeyi arayüz.