.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

  1. cPanel'e giriş yapın
  2. Dosya Yöneticisi'ni açın
  3. public_html dizinine gidin
  4. Sağ üstte "Gizli Dosyaları Göster" seçeneğini aktif edin
  5. .htaccess dosyasını bulun
  6. Sağ tıklayıp "Kod Düzenleyici ile Aç" seçin
  7. 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.