Teknoloji

.htaccess dosyası nereye konur? Kesin yerleşim rehberi [2026]

.htaccess dosyası nereye konur? Kesin yerleşim rehberi [2026] - Kapak Görseli

Sunucuda yönlendirme çalışmıyor, 403 hatası çıkıyor ya da yazdığın kurallar hiç devreye girmiyorsa büyük ihtimalle sorun dosyanın içeriğinde değil, yanlış klasöre koymanda. .htaccess dosyası tek satırlık bir ayarla bile sitenin davranışını değiştirir; ama doğru dizine yerleşmezse Apache onu hiç okumaz. Kendi tecrübemle söyleyebilirim ki, .htaccess kaynaklı görünen hataların ciddi bir kısmı aslında yanlış konum, yanlış dosya adı ya da gizli dosya görünürlüğü sorunundan çıkar. Bu rehberde dosyanın tam olarak nereye konacağını, hangi klasörde hangi etkiyi oluşturduğunu ve kurulumdan sonra nasıl test edeceğini net biçimde öğreneceksin.

.htaccess dosyası tam olarak ne işe yarar ve neden yeri kritiktir?

.htaccess, Apache tabanlı web sunucularda dizin bazında yapılandırma kuralları yazmanı sağlar. Dosyanın adı nokta ile başlar ve bu yüzden çoğu dosya yöneticisi onu varsayılan olarak gizler. Sunucu, isteği işlerken ilgili klasörden başlayıp üst dizin kurallarını değerlendirir. Bu yüzden dosyanın konumu doğrudan etki alanını belirler.

En temel mantık şu:
– Ana dizine koyarsan tüm siteyi etkiler.
– Alt klasöre koyarsan sadece o klasörü ve onun altındaki dizinleri etkiler.
– Yanlış klasöre koyarsan kural çalışmaz ya da sadece beklemediğin küçük bir alanı etkiler.

Apache resmi belgeleri, .htaccess dosyalarının dizin başına ek yapılandırma mantığıyla çalıştığını açıkça belirtir. Apache HTTP Server dokümantasyonunda yer alan AccessFileName ve AllowOverride yönergeleri bu davranışı tanımlar. Yani konu tahmine değil, sunucunun çalışma modeline dayanır.

Bir diğer kritik nokta da şu: Her sunucu .htaccess kullanmaz. Nginx kullanan bir altyapıda bu dosya tek başına işe yaramaz. LiteSpeed ise çoğu durumda Apache uyumluluğu sayesinde .htaccess kurallarını okuyabilir. Bu yüzden önce web sunucunu doğrulaman gerekir.

.htaccess dosyası nereye konur sorusunun kesin cevabı

Kısa cevap şu: .htaccess dosyasını, kuralın etkili olmasını istediğin dizine koyarsın. Çoğu site sahibi için doğru yer sitenin ana dizinidir.

En yaygın yerleşimler şöyle çalışır:

1. Kök dizin
Site adresin açıldığında yüklenen ana klasöre koyarsın. Bu klasör çoğu hosting panelinde publichtml, htdocs, www, httpdocs ya da domain adıyla açılmış web root klasörü olur.

Örnek:
– public
html/.htaccess
– htdocs/.htaccess
– httpdocs/.htaccess

Bu yerleşim ne sağlar?
– Tüm siteye yönlendirme uygular
– www yönlendirmesi yapar
– HTTPS zorlaması ekler
– WordPress kalıcı bağlantılarını çalıştırır
– Güvenlik kurallarını tüm siteye yayar

2. Alt klasör
Sadece belirli bir bölüm için kural yazacaksan dosyayı ilgili alt klasöre koyarsın.

Örnek:
– publichtml/blog/.htaccess
– public
html/panel/.htaccess

Bu yerleşim ne sağlar?
– Sadece blog klasörü için yönlendirme
– Belirli klasöre şifreleme
– Klasöre özel erişim kısıtı
– Tek bir uygulama dizinine özel kurallar

3. Alt alan adı dizini
Subdomain ayrı klasörde çalışıyorsa .htaccess dosyasını o subdomainin document root klasörüne koyarsın.

Örnek:
– publichtml/shop/.htaccess
– subdomains/shop/.htaccess

Burada kritik ayrım şudur: shop.siteadi.com ile siteadi.com/shop aynı şey değildir. Biri alt alan adı, diğeri alt klasördür. Barındırma paneli hangi yolu document root olarak tanımlıyorsa .htaccess oraya yerleşir.

Yıllar süren hosting paneli ve Apache yapılandırması takibim gösteriyor ki, kullanıcıların en sık yaptığı hata publichtml içine değil, onun bir üstüne dosya bırakmaktır. Mesela home/kullanici/.htaccess yazınca ziyaretçi trafiğini yöneten web köküne değil, hesap dizinine kural eklemiş olursun. Çoğu paylaşımlı hosting bu kuralları web isteği düzeyinde kullanmaz.

Doğru klasörü bulmak için net yöntem

.htaccess dosyasını doğru yere koymak için önce sitenin hangi klasörden yayın yaptığını bulmalısın. Bunun için karmaşık araçlara ihtiyacın yok.

1. Hosting paneline gir
cPanel, Plesk ya da özel panel kullanıyorsan Dosya Yöneticisi bölümünü aç.

2. Web kök klasörünü kontrol et
En yaygın klasörler:
– publichtml
– www
– htdocs
– httpdocs

3. Sitenin dosyalarını tanı
Aşağıdaki dosyaları görüyorsan büyük ihtimalle doğru yerdesin:
– index.php
– index.html
– wp-config.php
– wp-content klasörü
– robots.txt

4. Alan adı ayarını incele
Panelde Domains ya da Etki Alanları bölümünde Document Root satırı yer alır. Bu satır sana kesin klasörü gösterir.

5. FTP ile bağlanıyorsan gizli dosyaları aç
Birçok FTP istemcisi .htaccess dosyasını saklar. FileZilla gibi araçlarda hidden files görünümünü açman gerekir.

Küçük ama önemli bir test:
Geçici olarak kök klasöre şu satırı ekleyebilirsin:
Redirect 301 /test-eski /test-yeni

Ardından tarayıcıda siteadresin.com/test-eski yolunu çağır. /test-yeni adresine gidiyorsa dosyayı doğru yere koymuşsundur.

WordPress, özel yazılım ve alt klasör kurulumlarında yerleşim farkı

Her site aynı yapıda kurulmaz. Bu yüzden .htaccess konumu kullandığın sisteme göre küçük farklar gösterir.

WordPress sitesinde .htaccess nereye konur?

WordPress’in standart kurulumu ana dizindeyse .htaccess dosyası da aynı yerde olur. Çoğu sitede yol şudur:
public
html/.htaccess

WordPress kalıcı bağlantılar sistemi bu dosyayı aktif kullanır. Eğer Ayarlar içinden kalıcı bağlantı yapısını değiştiriyorsan WordPress genelde bu dosyayı günceller. WordPress belgeleri de varsayılan rewrite kurallarının .htaccess içinde tutulduğunu doğrular.

Eğer WordPress’i alt klasöre kurduysan yer şu olabilir:
publichtml/blog/.htaccess

Bu durumda kurallar da o klasör yapısına göre yazılır.

Laravel, özel PHP yazılımı ya da framework kullanan sitede nereye konur?

Framework mimarisinde asıl web kökü bazen proje ana klasörü değil, public klasörü olur. Örneğin Laravel’de güvenli yapı genelde public dizinini document root yapar.

Örnek:
– proje/public/.htaccess

Burada tüm proje köküne değil, ziyaretçinin eriştiği public dizinine koyman gerekir. Yanlışlıkla üst klasöre bırakırsan kurallar beklediğin gibi çalışmaz.

Alt klasörde çalışan ikinci bir uygulamada yer neresidir?

Aynı hosting içinde birden fazla uygulama varsa her biri kendi dizininde ayrı .htaccess kullanabilir.

Örnek:
– public
html/.htaccess ana site
– publichtml/forum/.htaccess forum
– public
html/magaza/.htaccess mağaza

Apache, ilgili istekte bulunduğu klasördeki kuralları devralır. Yani forum için yazdığın kural tüm ana siteyi etkilemez; ama üst dizinde çakışan kural varsa miras etkisi oluşabilir.

.htaccess dosyasının yanlış yere konduğunu nasıl anlarsın?

Yanlış konum çoğu zaman belirgin sinyal verir. En sık gördüğüm işaretler şunlar:

– Yazdığın yönlendirme hiç çalışmaz
– HTTPS zorlaması devreye girmez
– 404 yerine doğrudan dosya listesi açılır
– WordPress kalıcı bağlantıları bozulur
– Sunucu 500 Internal Server Error verir
– Aynı kural alt sayfada çalışır ama ana sitede çalışmaz

Bunun bir nedeni de şu olabilir: Sunucu .htaccess kullanımına izin vermiyordur. Apache’de AllowOverride kapalıysa dosya okunmaz. Apache resmi dökümantasyonunda bu davranış net biçimde açıklanır. Paylaşımlı hostinglerde çoğu sağlayıcı bunu açık tutar; fakat bazı performans odaklı kurulumlar kapatır.

Basit bir doğrulama yöntemi:
Kök dizindeki .htaccess içine geçici olarak hatalı bir karakter ekle. Sunucu hemen 500 hatası veriyorsa dosyayı okuyor demektir. Hiçbir değişiklik olmuyorsa ya yanlış dizindesin ya da AllowOverride kapalıdır. Bu testi yaparken dikkatli ol; testten sonra satırı anında sil.

Kurulum sonrası güvenli kontrol adımları

Dosyayı yerine koyduktan sonra sadece varlığına bakma, etkisini doğrula.

1. Dosya adı gerçekten .htaccess mi
Bazı kullanıcılar fark etmeden htaccess.txt oluşturur. Bu dosya çalışmaz.

2. UTF-8 BOM’suz kaydet
Bazı editörler başa görünmez karakter ekler. Bu durum özellikle header hatalarına yol açar.

3. Dosya izinlerini kontrol et
Genelde 644 yeterlidir. Çok geniş izin bazen güvenlik riski doğurur.

4. Tarayıcı önbelleğini temizle
301 yönlendirmeler tarayıcıda kalıcı önbelleğe girebilir. Yanlış test sonucu almamak için gizli sekmede dene.

5. CDN kullanıyorsan önbelleği temizle
Cloudflare gibi servisler eski yanıtı gösterebilir.

6. Sunucu tipini doğrula
Apache ya da LiteSpeed değilse .htaccess işe yaramayabilir.

Kendi tecrübemle söyleyebilirim ki, kullanıcıların dosyayı doğru yere koyup yine de çalıştıramadığı vakalarda iki sebep çok öne çıkar: dosyanın adı yanlış olur ya da editör BOM karakteri ekler. Bu iki hata, yeni başlayanların düşündüğünden çok daha sık çıkar.

Sahada en çok karşılaştığım yerleşim senaryoları

Gerçek kullanımda tek bir doğru yol yok; yapı değiştikçe doğru konum da değişir. Aşağıdaki senaryolar, destek taleplerinde en sık gördüğüm örneklerdir.

Senaryo 1
Alan adın doğrudan publichtml klasörünü açıyor.
Doğru yer:
public
html/.htaccess

Senaryo 2
Siten blog klasöründe çalışıyor.
Doğru yer:
publichtml/blog/.htaccess

Senaryo 3
shop.ornek.com ayrı bir subdomain ve kökü public
html/shop klasörü.
Doğru yer:
publichtml/shop/.htaccess

Senaryo 4
WordPress ana dizinde, mağaza ise alt klasörde ikinci uygulama.
Doğru yer:
– public
html/.htaccess
– public_html/store/.htaccess

Senaryo 5
VPS kullanıyorsun, Apache sanal host ayarında document root var.
Doğru yer:
– /var/www/html/.htaccess
– ya da VirtualHost içinde tanımladığın kök dizin

Apache kullanım payı son yıllarda küresel ölçekte azalsa da paylaşımlı hosting ekosisteminde hâlâ güçlü bir yer tutar. W3Techs ve benzeri sektör kaynakları, pek çok sitenin Apache veya Apache uyumlu sunucularda çalıştığını düzenli olarak raporlar. Bu veri, .htaccess bilgisinin özellikle küçük ve orta ölçekli web sitelerinde hâlâ doğrudan işe yaradığını gösterir. Benzer biçimde WordPress’in küresel kullanım oranı da çok yüksek olduğu için, .htaccess en çok WordPress URL yapısı ve yönlendirme sorunlarında gündeme gelir. Kahve Fincan üzerinde teknik içerik hazırlarken de en fazla gelen soruların bu başlıkta toplanması tesadüf değil.

Sıkça Sorulan Sorular

.htaccess dosyası masaüstünde hazırlanıp sonra yüklenebilir mi?

Evet. Dosyayı bilgisayarında oluşturup doğru klasöre FTP ya da dosya yöneticisiyle yükleyebilirsin.

.htaccess dosyası kök dizinde mi alt klasörde mi olmalı?

Kural tüm siteyi etkileyecekse kök dizinde olmalı. Sadece belirli bölüm içinse ilgili alt klasöre koymalısın.

.htaccess dosyası neden görünmüyor?

Çünkü gizli dosyadır. Dosya yöneticisi ya da FTP istemcisinde hidden files görünümünü aç.

Nginx kullanıyorsam .htaccess işe yarar mı?

Hayır. Nginx, .htaccess dosyasını Apache gibi okumaz. Kuralları sunucu yapılandırmasına yazman gerekir.

Bir sitede birden fazla .htaccess olabilir mi?

Evet. Ana dizinde ve alt klasörlerde ayrı .htaccess dosyaları bulunabilir. Etki alanı klasöre göre değişir.

.htaccess hatalıysa site tamamen kapanır mı?

Evet, kapanabilir. Özellikle sözdizimi hatası 500 Internal Server Error üretebilir. Bu yüzden yedek alıp test ederek ilerle.

Dosyanı nereye koyacağın artık netleştiyse bir sonraki adım çok basit: hosting panelinde document root satırını aç, .htaccess dosyanın gerçekten o klasörde durduğunu kontrol et ve küçük bir yönlendirme testi yap. Takıldığın nokta dosyanın ana dizini mi yoksa alt klasör etkisi mi oldu? Sorunu yaz, birlikte doğru yolu netleştirelim.

Tagged , , , , ,