Web Sitesi Kök Dizini: Konum, Yapı ve En İyi Uygulamalar İçin Kapsamlı Kılavuz
Web sitenizin kök dizinini anlamak, her web geliştiricisinin, sistem yöneticisinin veya site sahibinin ustalaşması gereken en temel becerilerden biridir. İster bozuk bir sayfayı gideriyor, ister yeni bir uygulama dağıtıyor, ister sunucunuzu saldırılara karşı sertleştiriyor olun, her şey bu tek, kritik klasöre kadar izlenebilir. Bu kapsamlı kılavuzda, kök dizinin tam olarak ne olduğunu, farklı ortamlarda nerede bulunacağını, nasıl güvence altına alınacağını ve web sitelerini ölçekte verimli şekilde çalışır halde tutan profesyonel en iyi uygulamaları ele alacağız.
Web Sitesinin Kök Dizini Nedir?
Kök dizin, bir web sunucusundaki, bir web sitesinin tüm dosyalarının ve alt dizinlerinin sunulduğu en üst düzey klasördür. Bunu web sitenizin “ana üssü” olarak düşünebilirsiniz — bir ziyaretçi tarayıcısına alan adınızı (örn. www.example.com) yazdığında, web sunucusu hemen kök dizinin içine bakarak döndürülecek uygun dosyayı, genellikle index.html veya index.php‘i bulur.
Web sitenizin işlev görmesi için ihtiyaç duyduğu her şey burada veya altındaki alt dizinlerde bulunur: HTML işaretlemesi, CSS stil sayfaları, JavaScript dosyaları, görseller, video varlıkları, PHP betikleri ve dinamik olarak oluşturulan içerik. Düzgün yapılandırılmış bir kök dizin olmadan, web sunucunuzun başlangıç noktası yoktur ve kullanıcılara herhangi bir içerik sunamaz.
Web kök dizinini (HTTP/HTTPS aracılığıyla erişilebilen klasör) sunucunun dosya sistemi kökünden (Linux sistemlerinde / dizini) ayırt etmek önemlidir. Bunlar tamamen farklı kavramlardır. Web kökü, sunucunun dosya sistemi içindeki bir alt dizindir ve kamuoyunun erişebileceği şeyleri sınırlamak amacıyla kasıtlı olarak kapsamlandırılmıştır.
Kök Dizin için Yaygın İsimler
Kök dizinin tam adı ve yolu, barındırma ortamınıza, işletim sisteminize ve web sunucusu yazılımınıza bağlı olarak değişir. İşte en sık karşılaşılan yapılandırmalar:
| Ortam | Varsayılan Kök Dizin Yolu |
|---|---|
| cPanel / Paylaşımlı Hosting | /home/username/public_html/ |
| Plesk | /var/www/vhosts/domain.com/httpdocs/ |
| Ubuntu/Debian üzerinde Apache | /var/www/html/ |
| CentOS/RHEL üzerinde Apache | /var/www/html/ |
| Nginx (varsayılan) | /usr/share/nginx/html/ veya /var/www/html/ |
| XAMPP (Windows/macOS) | C:xampphtdocs veya /Applications/XAMPP/htdocs/ |
| MAMP (macOS) | /Applications/MAMP/htdocs/ |
| Özel VPS Yapılandırması | Sanal host yapılandırma dosyasında tanımlanır |
Bir VPS Hosting ortamında, kök dizin yolu tamamen özelleştirilebilir. Apache VirtualHost bloğu veya Nginx server bloğu içinde kendiniz tanımlarsınız; bu da sunucunuzun dosya yapısı üzerinde tam kontrol sağlar.
Kök Dizinin Amacı
Kök dizin, bir web sitesinin nasıl çalıştığı için temel olan birbirine bağlı birkaç işleve hizmet eder:
1. Merkezi Dosya Depolama
Web sitenizi oluşturan her dosya — ana sayfa HTML’inden en küçük simgeye kadar — kök dizinde veya alt dizinlerinden birinde depolanır. Web sunucusu, HTTP isteklerine yanıt verirken yalnızca bu konumdan okur.
2. Web Sunucusu Yapılandırması için Giriş Noktası
Apache ve Nginx gibi web sunucuları, kök dizine DocumentRoot (Apache) veya root yönergesi (Nginx) olarak işaret edecek şekilde açıkça yapılandırılır. Bu yapılandırma sunucuya şunu söyler: “Sunulacak dosyaları ararken buradan başla.”
# Apache VirtualHost example
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/html/example.com/public
</VirtualHost># Nginx server block example
server {
listen 80;
server_name www.example.com;
root /var/www/html/example.com/public;
index index.php index.html;
}3. Yapısal Organizasyon
Kök dizin, web sitenizin içeriğini mantıksal olarak düzenleyen tüm alt dizinler için üst kapsayıcı görevi görür — varlıkları betiklerden, yüklemeleri çekirdek dosyalardan ve genel içeriği özel yapılandırmadan ayırır.
4. Güvenlik Sınırı
Kök dizin, kamuya açık olanın sınırını tanımlar. Kök dizinin *dışına* yerleştirilen dosyalara bir web tarayıcısı aracılığıyla erişilemez; bu, hassas yapılandırma dosyalarını korumak için kritik bir güvenlik ilkesidir.
Kök Dizininizi Nasıl Bulursunuz
Yöntem 1: cPanel Kullanımı (Paylaşımlı Hosting)
cPanel, Paylaşımlı Web Hosting ortamları için en yaygın kullanılan kontrol panelidir. Kök dizininizi bulmak için:
yourdomain.com/cpaneladresinden veya hosting sağlayıcınızın kontrol paneli aracılığıyla cPanel hesabınıza giriş yapın.- Dosyalar → Dosya Yöneticisi‘ne gidin.
- Sol taraftaki dizin ağacında
public_htmladlı klasörü arayın — bu sizin web kökünüzdür. - Doğrudan
public_htmliçine yerleştirilen herhangi bir dosyaya alan adınızın kök URL’sinden erişilebilir (örn.example.com/filename.html).
Belge kökünü, cPanel’de Alan Adları → Alan Adları veya Ek Alan Adları bölümüne giderek de doğrulayabilirsiniz; burada her alan adı için belge kök yolu açıkça listelenir.
Yöntem 2: FTP veya SFTP Kullanımı (FileZilla)
FTP/SFTP erişimi neredeyse tüm hosting ortamlarında çalışır:
- FileZilla’yı (veya tercih ettiğiniz FTP istemcisini) açın.
- Ana bilgisayar adı, kullanıcı adı, parola ve port bilgilerini girin (FTP için 21, SFTP için 22 — güvenlik için her zaman SFTP’yi tercih edin).
- Bağlandıktan sonra ana dizininize geleceksiniz.
public_html,www,htdocsveyahttpdocsadlı klasörleri arayın. - O klasöre gidin — bu sizin kök dizininizdir.
- FileZilla’nın adres çubuğunda görüntülenen uzak yol, tam sunucu yolunu doğrular.
> Güvenlik ipucu: Düz FTP yerine her zaman SFTP kullanın. SFTP, kimlik bilgilerinizi ve dosya aktarımlarınızı şifreleyerek ele geçirilmesini önler.
Yöntem 3: SSH Kullanımı (VPS ve Dedicated Sunucular)
SSH erişimi en güçlü yöntemdir ve Dedicated Sunucular ile VPS ortamlarında standart uygulamadır:
# Connect to your server
ssh username@your-server-ip
# Navigate to the default Apache/Nginx root
cd /var/www/html
# List contents to confirm
ls -la
# Find the document root from Apache configuration
grep -r "DocumentRoot" /etc/apache2/sites-enabled/
# Find the root from Nginx configuration
grep -r "root " /etc/nginx/sites-enabled/Özel bir yapılandırma çalıştırıyorsanız, belge kökü sanal host dosyanızda tanımlanır. Aktif yapılandırmayı kontrol etmek, tam yolu doğrulamanın en güvenilir yoludur.
Yöntem 4: VPS’de Kontrol Paneli Kullanımı (cPanel, DirectAdmin, Plesk)
cPanel’li VPS veya başka bir panel çalıştırıyorsanız, arayüz paylaşımlı hostinge benzer şekilde çalışır. Belge kökü genellikle alan adı yönetimi bölümünde görüntülenir ve birincil alan adı için varsayılan olarak /home/username/public_html/ şeklindedir.
Kök Dizin Yapısı: En İyi Uygulamalar
İyi organize edilmiş bir kök dizin, profesyonelce yönetilen bir web sitesinin göstergesidir. İşte tipik bir web uygulaması için önerilen yapı:
/public_html/ ← Web root (publicly accessible)
├── index.php ← Entry point / homepage
├── .htaccess ← Apache configuration (rewrites, security)
├── robots.txt ← Search engine crawl instructions
├── sitemap.xml ← XML sitemap for SEO
├── assets/
│ ├── css/ ← Stylesheets
│ ├── js/ ← JavaScript files
│ └── images/ ← Image files
├── uploads/ ← User-uploaded content
├── includes/ ← PHP includes (header, footer, functions)
└── blog/ ← Blog section subdirectory
/home/username/ ← One level ABOVE the web root (private)
├── config/
│ ├── .env ← Environment variables (NOT publicly accessible)
│ └── db-config.php ← Database credentials (NOT publicly accessible)
└── backups/ ← Backup archives.env gibi hassas dosyalar, veritabanı kimlik bilgileri ve API anahtarları hiçbir zaman web kökünün içine yerleştirilmemelidir. Bunları bir dizin yukarıda depolamak, HTTP aracılığıyla tamamen erişilemez olmalarını sağlar.
Kök Dizin için Güvenlik En İyi Uygulamaları
Kök dizin düzeyindeki güvenlik yanlış yapılandırmaları, web sitesi ihlallerinin en yaygın nedenlerinden biridir. Bu uygulamaları titizlikle takip edin:
1. Doğru Dosya İzinlerini Ayarlayın
Yanlış izinler, hem güvenlik açıklarının hem de sunucu hatalarının önde gelen nedenidir:
# Set correct permissions for files (read/write for owner, read-only for others)
find /var/www/html -type f -exec chmod 644 {} ;
# Set correct permissions for directories (read/write/execute for owner, read/execute for others)
find /var/www/html -type d -exec chmod 755 {} ;
# Set ownership to the web server user
chown -R www-data:www-data /var/www/html| Kaynak Türü | Önerilen İzin | Açıklama |
|---|---|---|
| Normal dosyalar | 644 | Sahip: okuma+yazma; Grup/Diğerleri: yalnızca okuma |
| Dizinler | 755 | Sahip: tam; Grup/Diğerleri: okuma+çalıştırma |
| Yapılandırma dosyaları | 600 | Sahip: yalnızca okuma+yazma; diğerleri için erişim yok |
| Çalıştırılabilir betikler | 750 | Sahip: tam; Grup: okuma+çalıştırma; Diğerleri: yok |
2. Hassas Dosyaları .htaccess ile Koruyun (Apache)
Hassas dosyalara doğrudan erişimi engellemek için .htaccess kurallarını kullanın:
# Block access to .env files
<Files ".env">
Order allow,deny
Deny from all
</Files>
# Block access to configuration files
<FilesMatch ".(ini|log|conf|sql|bak)$">
Order allow,deny
Deny from all
</FilesMatch>
# Disable directory listing
Options -Indexes3. Dizin Listelemeyi Devre Dışı Bırakın
Bir dizinde index.html veya index.php dosyası yoksa, birçok web sunucusu varsayılan olarak içeriğinin tam listesini görüntüler — dosya yapınızı herkese açar. Bunu her zaman devre dışı bırakın:
- Apache:
Options -Indexes‘ı.htaccessveya sanal host yapılandırmanıza ekleyin. - Nginx: Sunucu bloğunuzda
autoindex off;‘ın ayarlandığından emin olun (varsayılan olarak kapalıdır).
Kazara ifşayı önlemek için her dizine her zaman bir index.html veya index.php dosyası yerleştirin.
4. Hassas Dosyaları Web Kökünün Dışında Tutun
Bu, kök dizin yönetimi için tek en önemli güvenlik ilkesidir:
- Veritabanı kimlik bilgileri, API anahtarları ve
.envdosyaları web kökünün üzerinde yer almalıdır. - Bunlara uygulamanızın içinden başvurmak için PHP’nin
requireveyainclude‘ını mutlak yollarla kullanın. - Yapılandırma dosyalarını web kökünün içinde depolamanız gerekiyorsa, bunlara HTTP erişimini engellemek için
.htaccesskurallarını kullanın.
5. SSL/TLS Uygulayın
Web sitenizi HTTPS üzerinden sunmak, sunucu ile ziyaretçinin tarayıcısı arasındaki aktarımdaki tüm verileri şifreler. Bir SSL Sertifikası artık isteğe bağlı değil — temel bir güvenlik gereksinimi ve onaylanmış bir Google sıralama faktörüdür. Web sunucunuzu tüm HTTP trafiğini HTTPS’ye yönlendirecek şekilde yapılandırın ve maksimum koruma için HSTS başlıkları ayarlayın.
Popüler CMS Platformları için Kök Dizin Yönetimi
WordPress
WordPress, platformu güvenli bir şekilde yönetmek için anlamanız gereken iyi tanımlanmış bir kök dizin yapısına sahiptir:
/public_html/
├── index.php ← WordPress bootstrap file
├── wp-config.php ← Database credentials & settings (move above web root if possible)
├── wp-login.php ← Login page (consider restricting by IP)
├── .htaccess ← WordPress permalink configuration
├── wp-admin/ ← Admin dashboard (restrict access)
├── wp-includes/ ← Core WordPress files (do not modify)
└── wp-content/
├── themes/ ← Installed themes
← Installed plugins
└── uploads/ ← Media library filesKritik WordPress kök dizin ipuçları:
wp-config.php‘ı web kökünün bir dizin üstüne taşıyın — WordPress onu orada otomatik olarak bulacaktır.wp-admin/vewp-login.php‘a erişimi.htaccesskullanarak IP adresine göre kısıtlayın.wp-includes/içindeki dosyaları asla değiştirmeyin — bir sonraki güncellemede üzerine yazılacaktır.- Kötü amaçlı dosya yüklemeleri için
wp-content/uploads/dizinini düzenli olarak denetleyin.
Joomla
Joomla’nın kök dizin yapısı benzer bir düzeni takip eder:
/public_html/
├── index.php ← Main entry point
├── configuration.php ← Database & site configuration
├── .htaccess ← URL rewriting rules
├── administrator/ ← Admin panel (restrict access)
├── components/ ← Frontend components
├── modules/ ← Joomla modules
├── plugins/ ← Joomla plugins
└── templates/ ← Site templatesVeritabanı kimlik bilgilerinin ifşasını önlemek için configuration.php‘ı web kökünün dışına taşıyın veya .htaccess aracılığıyla erişimini kısıtlayın.
Laravel / Modern PHP Çerçeveleri
Laravel gibi modern PHP çerçeveleri, özellikle kök dizin güvenliği göz önünde bulundurularak tasarlanmıştır. Yalnızca public/ alt dizini web kökü olarak açığa çıkarılır:
/var/www/laravel-app/ ← Application root (NOT the web root)
├── app/ ← Application logic
├── config/ ← Configuration files
├── .env ← Environment variables
├── vendor/ ← Composer dependencies
└── public/ ← THIS is the web root (DocumentRoot points here)
├── index.php
└── assets/Bu mimari bir güvenlik en iyi uygulamasıdır — hassas dosyalara HTTP aracılığıyla erişmek yapısal olarak imkânsızdır.
Kök Dizin için Yedekleme Stratejileri
Kök dizininizin düzenli yedeklemeleri tartışmasızdır. Tek bir yanlışlıkla silme, başarısız güncelleme veya güvenlik ihlali web sitenizi çevrimdışı bırakabilir. İşte en etkili yedekleme yaklaşımları:
SSH ile Manuel Yedekleme
# Create a compressed archive of the entire web root
tar -czf /home/username/backups/webroot-$(date +%Y%m%d).tar.gz /var/www/html/
# Transfer the backup to a remote location using SCP
scp /home/username/backups/webroot-$(date +%Y%m%d).tar.gz user@backup-server:/backups/Cron ile Otomatik Yedekleme
# Edit crontab
crontab -e
# Add a daily backup job at 2:00 AM
0 2 * * * tar -czf /home/username/backups/webroot-$(date +%Y%m%d).tar.gz /var/www/html/ 2>/dev/nullArtımlı Yedeklemeler için rsync Kullanımı
# Sync web root to a backup directory (only copies changed files)
rsync -avz --delete /var/www/html/ /mnt/backup/webroot/Hosting Sağlayıcısı Yedeklemeleri
Birçok yönetilen hosting çözümü otomatik günlük yedeklemeler içerir. AlexHost’un VPS Hosting planları, tüm sunucu ortamınızı koruyan yedekleme seçenekleri içerir ve kendi yedekleme rutinlerinizin yanı sıra güvenilir bir güvenlik ağı sağlar.
Yaygın Kök Dizin Sorunlarını Giderme
| Sorun | Olası Neden | Çözüm |
|---|---|---|
| 403 Yasak hatası | Eksik index dosyası veya yanlış izinler | index.html/index.php ekleyin; dizin izinlerini kontrol edin (755) |
| Ana sayfada 404 Bulunamadı | Sunucu yapılandırmasında yanlış DocumentRoot yolu | Apache’de DocumentRoot veya Nginx yapılandırmasında root‘ı doğrulayın |
| Yüklemeden sonra dosyalar güncellenmiyor | Tarayıcı veya sunucu tarafı önbelleğe alma | Tarayıcı önbelleğini temizleyin; sunucu önbelleğe alma başlıklarını kontrol edin |
| PHP dosyaları çalıştırılmak yerine indiriliyor | Bu dizin için PHP yapılandırılmamış | PHP işleyicisinin sunucu/hosting yapılandırmasında etkin olduğunu doğrulayın |
| Dizin listesi açığa çıktı | Options Indexes etkin | Options -Indexes‘ı .htaccess veya sunucu yapılandırmasına ekleyin |
| Dosya yazımında izin reddedildi | Yanlış dosya/dizin sahipliği | chown -R www-data:www-data /var/www/html komutunu çalıştırın |
Kök Dizin İhtiyaçlarınız için Doğru Hosting Ortamını Seçme
Kök dizininiz üzerinde sahip olduğunuz kontrol düzeyi, hosting ortamınıza önemli ölçüde bağlıdır:
- Paylaşımlı Web Hosting: Kök dizin
public_htmlolarak önceden yapılandırılmıştır. Kullanımı kolaydır, ancak özelleştirme sınırlıdır. Küçük web siteleri ve yeni başlayanlar için en iyisidir.
- VPS Hosting: Sunucuya tam kök erişimi. Belge kökünü kendiniz tanımlarsınız, web sunucusunu yapılandırırsınız ve tüm güvenlik ayarlarını kendiniz yönetirsiniz. Esnekliğe ihtiyaç duyan büyüyen işletmeler ve geliştiriciler için idealdir.
- Dedicated Sunucular: Maksimum kontrol ve performans. Sunucunun tamamı sizindir — kök dizini, web sunucusunu ve güvenlik yığınını tam olarak ihtiyaç duyulduğu şekilde yapılandırın. Yüksek trafikli web siteleri ve kurumsal uygulamalar için en iyisidir.
- VPS Kontrol Panelleri: Bir VPS’nin gücünü grafiksel bir kontrol panelinin kolaylığıyla birleştirerek, derin komut satırı uzmanlığı gerektirmeden kök dizin yönetimini erişilebilir kılar.
Sonuç
Kök dizin, her web sitesinin mimari temelidir. Web sunucunuzun içeriği nasıl bulup sunduğunu belirler, genel ve özel dosyalar arasındaki sınırı tanımlar ve sitenizin güvenlik duruşunu ve organizasyonel netliğini doğrudan etkiler. İster paylaşımlı hostingde basit bir broşür sitesi yönetiyor, ister dedicated sunucuda karmaşık çok uygulamalı bir ortam yönetiyor olun, ilkeler aynı kalır: düzenli tutun, hassas dosyaları genel web kökünün dışında tutun, doğru izinleri uygulayın ve düzenli olarak yedekleyin.
Kök dizin yönetiminde uzmanlaşmak yalnızca teknik bir onay kutusu değildir — kesinti sürelerini önleyen, güvenlik açıklarını kapatan ve web sitelerinizi zaman içinde çok daha kolay bakım ve ölçeklendirme yapılabilir hale getiren temel bir yetkinliktir.
