MeoHost Logo
Menü
BilgiMerkezi
Bilgi Merkezi/Web Sunucuları/Apache .htaccess Dosyası Kullanım Rehberi

Apache .htaccess Dosyası Kullanım Rehberi

Web Sunucuları02.02.2026Ahmet Yılmaz8 dk okuma

Apache .htaccess dosyası, Apache web sunucusunun belirli dizinler için yapılandırma ayarlarını geçersiz kılmaya veya özelleştirmeye yarayan metin tabanlı bir yapılandırma dosyasıdır. Bu dosya, sunucunun ana yapılandırma dosyasına erişimi olmayan veya değişiklik yapmak istemeyen kullanıcılar için esneklik sağlar.

Apache .htaccess Dosyası Kullanım Rehberi

Apache .htaccess Dosyası Nedir?

Apache web sunucusu, HTTP isteklerini işleyerek web sayfalarını kullanıcılara sunan yazılımlardan biridir. Bu sunucunun en önemli özelliklerinden biri, dizin bazlı yapılandırma yeteneğidir. Bu yetenek, .htaccess dosyaları aracılığıyla gerçekleştirilir. Bu dosyalar, sunucunun global yapılandırma dosyası olan httpd.conf veya sanal host yapılandırma dosyalarına müdahale etmeden, belirli bir dizindeki veya alt dizinlerdeki sunucu davranışını değiştirmek için kullanılır. Bu, özellikle paylaşımlı hosting ortamlarında veya web sitesi sahiplerinin sunucu ayarlarını doğrudan değiştiremediği durumlarda kritik öneme sahiptir. .htaccess dosyaları, URL yönlendirmeleri, erişim kontrolü, parola koruması, cache ayarları ve daha birçok özelleştirme için kullanılabilir. Bu dosyaların kullanımı, sunucu performansını etkileyebileceğinden dikkatli bir şekilde yönetilmelidir.

Apache .htaccess Dosyası Nasıl Çalışır?

Apache web sunucusu, bir dizine gelen her HTTP isteğini işlerken, ilgili dizini ve tüm üst dizinleri tarayarak .htaccess dosyalarını arar. Bu arama işlemi, sunucunun kök dizininden istenen dosyanın bulunduğu dizine kadar hiyerarşik bir şekilde ilerler. Sunucu, bir dizinde .htaccess dosyası bulduğunda, dosyanın içindeki yönergeleri okur ve uygular. Bu yönergeler, o dizindeki ve alt dizinlerdeki tüm istekler için geçerli olur ve ana sunucu yapılandırmasındaki ilgili yönergeleri geçersiz kılabilir veya tamamlayabilir.

İşleyiş süreci şu adımları izler:

  1. İstek Alınması: Kullanıcı bir web sayfasına veya kaynağa istek gönderdiğinde, Apache sunucusu bu isteği alır.
  2. Dizin Tarama: Sunucu, istenen kaynağın bulunduğu dizini belirler ve bu dizinden başlayarak sunucu kök dizinine doğru üst dizinleri tarar.
  3. .htaccess Dosyası Arama: Her dizinde .htaccess adında bir dosya olup olmadığı kontrol edilir.
  4. Yönergelerin Yüklenmesi: Bir .htaccess dosyası bulunduğunda, sunucu bu dosyadaki yönergeleri belleğine yükler. Birden fazla .htaccess dosyası varsa (farklı dizinlerde), en üstteki dosyanın yönergeleri önce, daha sonra alt dizindeki dosyanın yönergeleri uygulanır. Bu, alt dizindeki yönergelerin üst dizindekileri geçersiz kılabileceği anlamına gelir.
  5. Yapılandırma Uygulaması: Yüklenen yönergeler, isteği işlemek için kullanılır. Bu, URL yeniden yazma, erişim kontrolü, kimlik doğrulama gibi çeşitli görevleri içerebilir.
  6. İsteğin Tamamlanması: Yapılandırma uygulandıktan sonra, sunucu isteği işler ve sonucu kullanıcıya gönderir.

Bu mekanizma, Apache'nin esnekliğini artırır. Ancak, her istek için dizinleri tarama ve .htaccess dosyalarını okuma işlemi, sunucu üzerinde ek bir yüke neden olabilir. Bu nedenle, performansın kritik olduğu durumlarda, mümkün olduğunca sanal host yapılandırma dosyalarında (örneğin httpd.conf) ayarların yapılması tercih edilir. Apache'nin AllowOverride yönergesi, hangi tür yapılandırma ayarlarının .htaccess dosyaları aracılığıyla geçersiz kılınabileceğini belirler.

Apache .htaccess Dosyası Kullanım Alanları

.htaccess dosyaları, web sunucusu yönetiminde geniş bir kullanım alanına sahiptir. Temel olarak, sunucunun ana yapılandırma dosyasına (örneğin httpd.conf) erişimi olmayan durumlarda veya belirli dizinlere özgü ayarlar yapmak istendiğinde tercih edilir. Bu dosyalar aracılığıyla gerçekleştirilebilen başlıca işlemler şunlardır:

  • URL Yönlendirmeleri (Redirects): Eski URL'leri yeni URL'lere yönlendirmek, tek sayfalı uygulamalarda (SPA) doğru yönlendirmeyi sağlamak veya SEO amacıyla URL yapısını değiştirmek için kullanılır.
  • Erişim Kontrolü: Belirli IP adreslerinden veya ağlardan gelen isteklere izin vermek veya reddetmek, dizinlere parola koruması eklemek gibi güvenlik önlemleri alınabilir.
  • Özel Hata Sayfaları: 404 (Bulunamadı), 403 (Erişim Reddedildi), 500 (Sunucu Hatası) gibi standart HTTP hata kodları için kullanıcı tanımlı özel hata sayfaları belirtilebilir.
  • Cache ve Sıkıştırma Ayarları: Tarayıcı cache'ini yönetmek, gzip sıkıştırmasını etkinleştirmek gibi performans iyileştirmeleri yapılabilir.
  • Dosya Türü Tanımlamaları: Sunucunun yeni dosya türlerini tanımasını sağlamak için MIME türleri eklenebilir.
  • SSL/TLS Yönlendirmeleri: HTTP isteklerini otomatik olarak HTTPS'e yönlendirmek için kullanılır.
  • Modül Kontrolü: Belirli Apache modüllerinin davranışını dizin bazında ayarlamak için kullanılabilir.

Bu kullanım alanları, web geliştiricilerine ve yöneticilerine büyük esneklik sunar. Örneğin, bir web sitesi sahibinin, ana sunucu yapılandırmasına erişimi olmasa bile, bir dizindeki dosyaların erişimini kısıtlaması veya belirli bir URL'yi başka bir sayfaya yönlendirmesi mümkündür. Bu, özellikle paylaşımlı hosting ortamlarında yaygın bir uygulamadır. Ancak, her istekte bu dosyaların okunması, sunucu performansını olumsuz etkileyebileceği için dikkatli kullanılmalıdır. Performans odaklı uygulamalarda, bu ayarların ana yapılandırma dosyasına taşınması önerilir.

Apache .htaccess Dosyası Uygulama Rehberi

.htaccess dosyasını kullanmak için öncelikle sunucunuzdaki ilgili dizine bu isimde bir dosya oluşturmanız veya mevcut dosyayı düzenlemeniz gerekir. Dosya, FTP istemcisi veya SSH aracılığıyla erişilebilir.

Aşağıda, sık kullanılan bazı .htaccess yapılandırmaları ve bunların nasıl uygulanacağına dair adım adım talimatlar bulunmaktadır:

  1. .htaccess Dosyası Oluşturma veya Düzenleme:
    • SSH erişiminiz varsa, sunucunuza bağlanın ve dosyanın bulunmasını istediğiniz dizine gidin. nano .htaccess veya vi .htaccess komutu ile dosyayı oluşturabilir veya düzenleyebilirsiniz.
    • FTP istemcisi kullanıyorsanız, sunucunuza bağlanın, ilgili dizine gidin ve dosya yöneticisi aracılığıyla .htaccess adında yeni bir dosya oluşturun. Dosya görünmüyorsa, gizli dosyaları gösterme seçeneğini etkinleştirmeniz gerekebilir.
  2. URL Yönlendirmeleri (Örn: HTTP'den HTTPS'e Yönlendirme):

    Tüm HTTP trafiğini HTTPS'e yönlendirmek için dosyanın başına aşağıdaki satırları ekleyin:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
            
    • RewriteEngine On: URL yeniden yazma motorunu etkinleştirir.
    • RewriteCond %{HTTPS} off: Koşul, isteğin HTTPS üzerinden yapılmadığını kontrol eder.
    • RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]: Eşleşen her isteği (^(.*)$), HTTPS versiyonuna yönlendirir. [L] son kural olduğunu ve [R=301] kalıcı yönlendirme olduğunu belirtir.
  3. Erişim Kontrolü (Belirli IP'leri Engelleme):

    Belirli bir IP adresini engellemek için aşağıdaki satırları ekleyin:

    Order allow,deny
    Deny from 192.168.1.100
    Allow from all
            
    • Order allow,deny: Erişim kontrol politikasının sırasını belirler.
    • Deny from 192.168.1.100: Belirtilen IP adresinden gelen trafiği engeller.
    • Allow from all: Diğer tüm IP adreslerine izin verir.
  4. Özel Hata Sayfaları Tanımlama (Örn: 404 Sayfası):

    404 hatası için özel bir sayfa göstermek için:

    ErrorDocument 404 /hatalar/404.html
            
    • ErrorDocument 404: 404 hata kodunu belirtir.
    • /hatalar/404.html: Hata durumunda gösterilecek sayfanın kök dizine göre yolunu belirtir.
  5. Dosyayı Kaydetme ve Test Etme:

    Dosyayı kaydedin ve tarayıcınızda ilgili URL'yi ziyaret ederek yaptığınız değişikliklerin doğru çalışıp çalışmadığını test edin. Tarayıcı önbelleğini temizlemeniz veya farklı bir tarayıcı kullanmanız gerekebilir.

Bu temel örnekler, .htaccess dosyasının gücünü göstermektedir. Daha karmaşık yapılandırmalar için Apache'nin resmi dokümantasyonuna başvurulabilir.

Sık Yapılan Hatalar ve Çözümleri

.htaccess dosyaları güçlü araçlar olsa da, hatalı kullanımları çeşitli sorunlara yol açabilir. İşte sık karşılaşılan hatalar ve çözüm önerileri:

1. "500 Internal Server Error" Hatası

Bu hata, genellikle .htaccess dosyasındaki sözdizimi hatalarından veya geçersiz yönergelerden kaynaklanır. Çözüm, dosyadaki her bir satırı dikkatlice kontrol etmek, doğru sözdizimi kullandığınızdan emin olmak ve Apache'nin hata günlüklerini (error logs) inceleyerek sorunun kaynağını tespit etmektir. Özellikle karakter hataları, eksik tırnak işaretleri veya yanlış modül kullanımı bu hataya neden olabilir.

2. Yönlendirmelerin Çalışmaması veya Sonsuz Döngü Oluşturması

URL yönlendirmeleri doğru yapılandırılmadığında, web sitesi sonsuz bir yönlendirme döngüsüne girebilir veya hiç çalışmayabilir. Bu durum, RewriteRule yönergelerindeki eksik koşullar veya yanlış hedef URL'ler nedeniyle oluşabilir. Çözüm, RewriteCond yönergelerinin doğru ayarlandığından ve RewriteRule'nun hedefinin doğru olduğundan emin olmaktır. Ayrıca, [L] bayrağının doğru kullanılması, birden fazla kuralın çakışmasını önleyebilir.

3. Erişim Kontrolünün Beklendiği Gibi Çalışmaması

IP bazlı erişim kontrolü veya parola koruması ayarları yanlış yapıldığında, istenmeyen kullanıcılara erişim izni verilebilir veya yetkili kullanıcıların erişimi engellenebilir. Bu genellikle Order, Allow ve Deny yönergelerinin yanlış sıralanmasından veya eksik yapılandırılmasından kaynaklanır. Satisfy Any veya Satisfy All gibi yönergelerin doğru kullanılması önemlidir.

4. Tarayıcı Önbelleği Sorunları

Cache ile ilgili yapılan .htaccess ayarları, tarayıcıların eski içerikleri göstermesine neden olabilir. Eğer bir değişiklik yaptıysanız ve bu hemen görünmüyorsa, tarayıcınızın önbelleğini temizlemeniz veya Ctrl+F5 (Windows) / Cmd+Shift+R (Mac) tuş kombinasyonlarını kullanarak sayfayı yenilemeniz gerekebilir.

5. Dosya İzinleri Sorunları

.htaccess dosyası veya dosyanın bulunduğu dizinin dosya izinleri (CHMOD) yanlış ayarlanmışsa, Apache sunucusu dosyayı okuyamayabilir ve hata verebilir. Genellikle, .htaccess dosyası için 644 veya 664 izinleri yeterli olacaktır. Sunucu yapılandırmasına bağlı olarak bu izinler değişebilir.

Teknik Özellikler ve Standartlar

.htaccess dosyaları, Apache HTTP Server'ın belirli modülleri tarafından desteklenir. Bu modüllerin başında mod_rewrite, mod_authz_core (erişim kontrolü için) ve mod_headers (HTTP başlıklarını yönetmek için) gelir. Bu modüllerin sunucuda etkinleştirilmiş olması, ilgili .htaccess yönergelerinin çalışabilmesi için bir ön koşuldur.

Apache'nin yapılandırma sistemi, AllowOverride direktifi aracılığıyla hangi .htaccess yönergelerinin hangi dizinlerde kullanılabileceğini kontrol eder. Bu direktif, ana yapılandırma dosyalarında (örneğin httpd.conf veya sanal host yapılandırmaları) ayarlanır. AllowOverride None ayarı, .htaccess dosyalarının tamamen devre dışı bırakılmasını sağlarken, AllowOverride All ise tüm yapılandırma direktiflerinin .htaccess dosyaları aracılığıyla geçersiz kılınmasına izin verir. Performans ve güvenlik açısından, genellikle sadece gerekli olan direktiflere izin veren daha kısıtlı ayarlar tercih edilir.

Standartlar açısından bakıldığında, .htaccess dosyaları doğrudan bir RFC (Request for Comments) standardı olmasa da, Apache'nin kendi mimarisi ve HTTP protokolünün davranışlarına uygun olarak çalışırlar. Özellikle URL yeniden yazma işlemleri, mod_rewrite modülünün sunduğu yetenekler çerçevesinde gerçekleşir ve RFC 3986 (URI Belirteçleri) gibi standartlara uygun URI'ler oluşturmayı hedefler. Güvenlik yapılandırmaları ise genel ağ güvenliği prensiplerine dayanır.

2026 Sektör Verileri ve İstatistikler

Web sunucularının ve ilgili yapılandırma araçlarının kullanımı, dijital altyapının temelini oluştururken, bu alandaki trendler sürekli olarak evrilmektedir. .htaccess dosyalarının yaygın olarak kullanıldığı Apache sunucusu, pazar payı açısından hala önemli bir yere sahiptir.

W3Techs 2026 verilerine göre, web sitelerinin yaklaşık %28'i Apache web sunucusunu kullanmaktadır. Bu oran, Nginx ve diğer sunucuların yükselişiyle birlikte bir miktar düşüş gösterse de, Apache'nin hala geniş bir kullanıcı tabanına sahip olduğunu ve .htaccess gibi özelliklerinin bu popülerlikte rol oynadığını göstermektedir. Statista 2026 raporuna göre, küresel web barındırma pazarının 2026 yılı sonuna kadar 200 milyar doları aşması beklenmektedir. Bu büyük pazar, farklı web sunucularının ve yapılandırma yöntemlerinin önemini vurgulamaktadır.

Cloudflare Radar 2026 verilerine göre, web performansını optimize etme çabaları artarak devam etmektedir. .htaccess dosyaları aracılığıyla yapılan cache ve sıkıştırma optimizasyonları, bu performans iyileştirmelerinin önemli bir parçasıdır. Netcraft 2026 araştırmasına göre, aktif web sitesi sayısının sürekli artması, her bir sitenin kendine özgü yapılandırma ihtiyaçlarının da arttığını göstermektedir. Bu bağlamda, .htaccess gibi esnek yapılandırma araçları, geliştiriciler için değerli olmaya devam etmektedir.

İlgili Konular

Apache web sunucusu, Nginx gibi diğer popüler web sunucularıyla karşılaştırıldığında kendine özgü avantajlara sahiptir. Apache vs Nginx Hangisi Daha İyi? makalesinde bu karşılaştırmayı detaylıca inceleyebilirsiniz. Yeni bir web sunucusu kurarken veya mevcut bir sunucuyu yapılandırırken, Web Sunucusu Kurulumu rehberimiz size adım adım yardımcı olacaktır.

Sık Sorulan Sorular

Apache .htaccess Dosyası Kullanım Rehberi hakkında merak edilenler

.htaccess dosyası, Apache web sunucusunun belirli dizinler için yapılandırma ayarlarını değiştirmesine olanak tanıyan bir metin dosyasıdır. Bu dosya sayesinde URL yönlendirmeleri, erişim kontrolü, özel hata sayfaları gibi birçok ayarı sunucunun ana yapılandırma dosyasına dokunmadan yapabilirsiniz.
Evet, her istekte sunucunun ilgili dizini ve üst dizinlerde .htaccess dosyasını arayıp okuması gerektiğinden, yoğun .htaccess kullanımı sunucu performansını olumsuz etkileyebilir. Bu nedenle, mümkün olduğunca ana sunucu yapılandırma dosyalarında ayar yapmak daha performanslıdır.
Evet, .htaccess dosyasındaki ciddi bir sözdizimi hatası veya geçersiz bir yapılandırma, web sitenizin "500 Internal Server Error" hatası vermesine ve erişilemez hale gelmesine neden olabilir. Bu tür durumlarda, dosya içeriğini dikkatlice kontrol etmek ve hata günlüklerini incelemek önemlidir.

Sorunuz burada yok mu?

Canlı destek ekibimiz size yardımcı olmaya hazır.

İletişime Geç
A

Ahmet Yılmaz

İçerik Uzmanı

Web teknolojileri ve hosting çözümleri konusunda uzmanlaşmış içerik yazarı.

Web HostingTeknik Dokümantasyon
Yayın: 2 Şubat 2026
Güncelleme: 2 Şubat 2026
Uzman İçerik
Doğrulanmış Bilgi
Güncel Bilgi