.htaccess Nedir? Web Sitenizde Kullanımı ve En Önemli Ayarları
.htaccess Nedir? Web Sitenizde Kullanımı ve En Önemli Ayarları
Web sitenizde bir URL'yi başka bir adrese yönlendirmek, HTTP'yi HTTPS'e zorlamak, belirli IP adreslerini engellemek veya özel hata sayfaları tanımlamak istiyorsunuz. Tüm bu işlemleri sunucu paneline girmeden, yalnızca küçük bir metin dosyasıyla yapabilirsiniz: .htaccess.
Bu rehberde .htaccess dosyasının ne olduğunu, nasıl çalıştığını ve en yaygın kullanım senaryolarını gerçek kod örnekleriyle kapsamlı biçimde ele alıyoruz.
.htaccess Nedir?
.htaccess (Hypertext Access), Apache web sunucusunda dizin düzeyinde yapılandırma ayarları yapmanızı sağlayan özel bir dosyadır. Adının başındaki nokta, dosyanın gizli olduğunu gösterir — bu nedenle dosya yöneticilerinde "gizli dosyaları göster" seçeneği aktif edilmeden görünmez.
.htaccess dosyası genellikle web sitenizin kök dizininde (public_html) bulunur. Bu dosyaya eklediğiniz kurallar o dizin ve tüm alt dizinler için geçerli olur.
Ne işe yarar?
- URL yönlendirmeleri ve URL yeniden yazma
- HTTP'den HTTPS'e zorunlu yönlendirme
- Erişim kontrolü ve IP engelleme
- Özel hata sayfaları tanımlama
- Güvenlik önlemleri
- Önbellekleme ve sıkıştırma ayarları
- WordPress kalıcı bağlantı yapılandırması
.htaccess LiteSpeed'de Çalışır mı?
Evet. TuemCloud'un sunucu altyapısında kullandığı LiteSpeed web sunucusu .htaccess direktiflerinin büyük çoğunluğunu tam olarak destekler. Apache için yazılmış standart .htaccess kuralları LiteSpeed'de de sorunsuz çalışır.
LiteSpeed'in ek avantajı şudur: .htaccess kurallarını Apache'ye kıyasla çok daha hızlı işler. Bu sayede URL yeniden yazma ve yönlendirme işlemleri performans kaybı olmadan gerçekleştirilir. Hosting altyapısının hıza etkisi hakkında web sitesi neden yavaş yazımıza bakabilirsiniz.
.htaccess Dosyası Nasıl Düzenlenir?
cPanel Dosya Yöneticisi ile
- cPanel'e giriş yapın
- Dosya Yöneticisi'ni açın
- public_html dizinine gidin
- Sağ üstte "Gizli Dosyaları Göster" seçeneğini aktif edin
- .htaccess dosyasını bulun
- Sağ tıklayıp "Kod Düzenleyici ile Aç" seçin
- Değişikliklerinizi yapın ve kaydedin
cPanel kullanımı hakkında cPanel nedir yazımıza bakabilirsiniz.
FTP ile
FileZilla gibi bir FTP istemcisiyle sunucuya bağlanıp public_html klasöründe .htaccess dosyasını düzenleyebilirsiniz.
⚠️ Önemli Uyarı
.htaccess dosyasında yapılan bir hata sitenizi tamamen erişilemez hale getirebilir. Her değişiklik öncesinde dosyanın yedeğini alın. Web sitesi yedekleme hakkında web sitesi yedekleme nasıl yapılır yazımıza bakabilirsiniz.
En Önemli .htaccess Kullanım Senaryoları
1. HTTP'den HTTPS'e Zorunlu Yönlendirme
SSL sertifikası kurulumu tamamlandıktan sonra tüm HTTP trafiğini HTTPS'e yönlendirmek için en yaygın kullanılan .htaccess kuralıdır.
apache
RewriteEngine On RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Bu kural http://siteniz.com adresine gelen tüm ziyaretçileri otomatik olarak https://siteniz.com adresine yönlendirir. SSL sertifikası hakkında SSL sertifikası nedir yazımıza bakabilirsiniz.
2. www'den www'siz Adrese Yönlendirme (veya Tersi)
Google, www.siteniz.com ile siteniz.com adreslerini farklı siteler olarak görebilir. Birini diğerine yönlendirmek SEO açısından önemlidir.
www'siz adrese yönlendirme:
apache
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
www'li adrese yönlendirme:
apache
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
On-Page SEO ve URL yapısı hakkında On-Page SEO nedir yazımıza bakabilirsiniz.
3. 301 Kalıcı Yönlendirme
Eski bir URL'yi yeni adresine kalıcı olarak yönlendirmek için kullanılır. 301 yönlendirme Google'a "bu sayfa kalıcı olarak taşındı" mesajı verir ve eski sayfanın SEO değeri yeni adrese aktarılır.
Tekil URL yönlendirme:
apache
Redirect 301 /eski-sayfa/ https://siteniz.com/yeni-sayfa/
RewriteRule ile yönlendirme:
apache
RewriteEngine On RewriteRule ^eski-sayfa/?$ /yeni-sayfa/ [R=301,L]
Tüm eski alan adını yeniye yönlendirme:
apache
RewriteEngine On RewriteCond %{HTTP_HOST} ^eskialanadiniz\.com$ [NC] RewriteRule ^(.*)$ https://yenialanadiniz.com/$1 [R=301,L]
4. WordPress Permalink Yapılandırması
WordPress'in URL yapısının çalışması için .htaccess dosyasında şu kuralların bulunması zorunludur:
apache
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Bu kurallar WordPress yönetim panelinde Ayarlar → Kalıcı Bağlantılar → Kaydet yapıldığında otomatik oluşturulur. WordPress hakkında WordPress nedir yazımıza bakabilirsiniz.
5. Dizin Listelemeyi Engelleme
Bir dizinde index dosyası yoksa web sunucusu o dizindeki tüm dosyaları listeleyebilir. Bu ciddi bir güvenlik açığıdır.
apache
Options -Indexes
Bu tek satır, sitenizin tüm dizinlerinde dosya listelemeyi devre dışı bırakır.
6. Belirli IP Adreslerini Engelleme
Kötü niyetli IP adreslerini veya belirli coğrafyaları sitenizden erişimden engelleyebilirsiniz.
Tek IP engelleme:
apache
<RequireAll>
Require all granted
Require not ip 192.168.1.100
</RequireAll>
IP aralığı engelleme:
apache
<RequireAll>
Require all granted
Require not ip 192.168.1
</RequireAll>
Yalnızca belirli IP'ye izin verme (yönetici paneli koruması):
apache
<Files wp-login.php>
Require ip 192.168.1.1
</Files>
Sunucu güvenliği hakkında sunucu güvenliği nasıl sağlanır yazımıza bakabilirsiniz.
7. Özel Hata Sayfaları Tanımlama
Ziyaretçiler hata sayfasına düştüğünde profesyonel ve özelleştirilmiş bir sayfa görmelerini sağlayabilirsiniz.
apache
ErrorDocument 400 /hata-sayfalari/400.html
ErrorDocument 401 /hata-sayfalari/401.html
ErrorDocument 403 /hata-sayfalari/403.html
ErrorDocument 404 /hata-sayfalari/404.html
ErrorDocument 500 /hata-sayfalari/500.html
8. Belirli Dosyalara Erişimi Engelleme
Hassas dosyalarınıza dışarıdan erişimi engelleyebilirsiniz.
wp-config.php dosyasını koruma:
apache
<Files wp-config.php>
Require all denied
</Files>
.htaccess dosyasının kendisini koruma:
apache
<Files .htaccess>
Require all denied
</Files>
Belirli uzantılı dosyaları engelleme:
apache
<FilesMatch "\.(log|sql|bak|backup)$">
Require all denied
</FilesMatch>
WordPress güvenliği hakkında WordPress güvenliği nasıl sağlanır yazımıza bakabilirsiniz.
9. Hotlinking'i Engelleme
Başka siteler görsellerinizi doğrudan URL'leriyle kendi sayfalarında gösterip bant genişliğinizi tüketiyorsa bunu engelleyebilirsiniz.
apache
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?siteniz\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp|svg)$ - [F,NC]
10. Tarayıcı Önbelleğini Yapılandırma
Statik dosyaların ziyaretçi tarayıcısında ne kadar süre önbellekte tutulacağını belirleyebilirsiniz. Bu sayfa yükleme hızını önemli ölçüde artırır.
apache
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/html "access plus 1 day"
</IfModule>
WordPress hız optimizasyonu hakkında WordPress hız optimizasyonu yazımıza bakabilirsiniz.
11. Gzip Sıkıştırma
Sunucudan gönderilen dosyaları sıkıştırarak bant genişliği tüketimini ve sayfa yükleme süresini azaltır.
apache
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
12. PHP Sürümü Belirleme
Bazı hosting panellerinde .htaccess aracılığıyla PHP sürümü belirlenebilir:
apache
AddHandler application/x-httpd-php82 .php
PHP sürümünün önemi hakkında PHP nedir yazımıza bakabilirsiniz.
.htaccess Hatalarını Giderme
.htaccess dosyasında yapılan hata 500 Internal Server Error veya sayfalara erişilememe sorununa yol açabilir.
Hata tespiti için:
Adım 1: .htaccess dosyasını geçici olarak yeniden adlandırın (.htaccess_yedek). Site açılıyorsa sorun .htaccess'tedir.
Adım 2: Kuralları birer birer ekleyerek hangisinin soruna yol açtığını tespit edin.
Adım 3: Sözdizimini kontrol edin — noktalama hataları, eksik parantezler veya yanlış direktif adları en yaygın hatalardır.
Adım 4: Apache/LiteSpeed hata loglarını inceleyin. cPanel → Loglar → Hata Günlüğü bölümünden ulaşabilirsiniz.
.htaccess Güvenlik Kontrol Listesi
Web sitenizin güvenliği için .htaccess'te uygulamanız gereken temel önlemler:
- ✅ Dizin listeleme devre dışı (Options -Indexes)
- ✅ wp-config.php dışarıdan erişime kapalı
- ✅ .htaccess dosyasının kendisi korumalı
- ✅ Hassas dosya uzantıları engelli (.log, .sql, .bak)
- ✅ HTTP → HTTPS yönlendirmesi aktif
- ✅ www/www'siz tutarlılık sağlanmış
- ✅ Hotlinking engellenmiş (medya ağırlıklı siteler için)
Firewall ve güvenlik duvarı hakkında firewall nedir yazımıza bakabilirsiniz.
Sonuç
.htaccess dosyası, küçük bir metin dosyası olmasına rağmen web sitenizin güvenliği, hızı ve SEO'su üzerinde çok güçlü etkiye sahiptir. URL yönlendirmelerinden güvenlik önlemlerine, önbellekleme ayarlarından WordPress yapılandırmasına kadar geniş bir kullanım alanı sunar.
TuemCloud'un LiteSpeed tabanlı hosting altyapısında .htaccess kuralları Apache standartlarıyla tam uyumlu çalışır. Hosting paketlerimizi incelemek için web hosting fiyatlarımıza göz atın.
Sıkça Sorulan Sorular
.htaccess dosyasını nerede bulurum?
public_html ana klasörünüzdedir. cPanel Dosya Yöneticisi'nde "Gizli Dosyaları Göster" seçeneğini aktif etmeniz gerekir çünkü nokta ile başlayan dosyalar varsayılan olarak gizlidir.
.htaccess ile yaptığım değişiklik ne zaman etkinleşir?
Anında. .htaccess değişiklikleri kaydettiğiniz anda etkinleşir — sunucuyu yeniden başlatmaya gerek yoktur.
.htaccess LiteSpeed'de çalışır mı?
Evet. LiteSpeed, Apache .htaccess direktiflerinin büyük çoğunluğunu tam olarak destekler. TuemCloud'un LiteSpeed altyapısında standart .htaccess kuralları sorunsuz çalışır.
.htaccess hatası sitenizi çökertir mi?
Evet. Sözdizimi hatası 500 Internal Server Error veya site erişilemezliğine yol açabilir. Bu nedenle her değişiklik öncesinde yedek almak şarttır.
WordPress .htaccess dosyasını kendisi oluşturur mu?
Evet. WordPress yönetim panelinde Ayarlar → Kalıcı Bağlantılar → Kaydet yapıldığında WordPress otomatik olarak .htaccess dosyasını oluşturur veya günceller.