Tüm Sistemler Çalışıyor
Network Durumu
Ana Sayfa Blog Apache .htaccess Kullanımı: 7 Adımda SEO, Güvenlik ve Performans Optimizasyonu

Apache .htaccess Kullanımı: 7 Adımda SEO, Güvenlik ve Performans Optimizasyonu

Apache .htaccess Kullanımı: 7 Adımda SEO, Güvenlik ve Performans Optimizasyonu

Apache .htaccess Kullanımı: Neden Önemli ve Nasıl Yapılır?

Birçok web yöneticisi, sitelerinin yavaş yüklenmesi, arama motoru sıralamalarının düşük olması veya güvenlik açıklarıyla karşılaşması gibi sorunlarla mücadele eder. Bu sorunların %40’ı, .htaccess dosyasının eksik veya hatalı yapılandırılmasından kaynaklanır. Apache web sunucusunun sunduğu .htaccess dosyası, klasör bazında yönlendirme, erişim kontrolü, sıkıştırma ve daha birçok işlemi kolayca yönetmenizi sağlar. Doğru ayarlarla sitenizin performansını %70’e kadar artırabilir, güvenliğini güçlendirebilir ve SEO dostu URL’ler oluşturabilirsiniz.

1. .htaccess Nedir ve Nasıl Çalışır?

1. .htaccess Nedir ve Nasıl Çalışır? - Apache .htaccess Kullanımı
1. .htaccess Nedir ve Nasıl Çalışır?

.htaccess (hypertext access) dosyası, Apache sunucusunun belirli bir dizinde çalıştırdığı yapılandırma talimatlarını içeren bir metin dosyasıdır. Dosya adı “.” (nokta) ile başlar ve gizli bir dosya olarak kabul edilir. Apache, her isteği işleme alırken, istenen dosyanın bulunduğu klasör ve üst klasörlerdeki .htaccess dosyalarını sırayla okur ve talimatları uygular. Bu sayede, sunucu seviyesinde global bir konfigürasyon yapmadan, tek bir klasörde farklı kurallar tanımlayabilirsiniz.

Örneğin, bir e‑ticaret sitesinde ürün sayfalarına SEO dostu URL’ler vermek istediğinizde, .htaccess dosyasıyla “/urun/12345” gibi temiz adresler oluşturabilirsiniz. Aynı dosyada IP bazlı erişim engelleme, gzip sıkıştırma ve güvenlik başlıkları ekleyerek siteyi koruma altına alabilirsiniz. .htaccess’in esnekliği, web hosting paketleri seçerken de önemli bir kriterdir; çünkü bazı paylaşımlı hosting hizmetleri .htaccess’i kısıtlayabilir.

2. SEO İçin .htaccess Ayarları

Arama motorları, temiz ve anlaşılır URL’leri tercih eder. .htaccess ile URL yeniden yazma (rewrite) kuralları oluşturarak, dinamik PHP parametrelerini kaldırabilir ve anahtar kelime odaklı adresler elde edebilirsiniz. Aşağıdaki örnek, “index.php?page=about” gibi bir URL’i “/hakkimizda” şeklinde dönüştürür:

RewriteEngine On
RewriteRule ^hakkimizda$ index.php?page=about [L,R=301]

Bu yönlendirme, 301 kalıcı yönlendirme olduğu için arama motorları eski URL’yi yeni URL’ye transfer eder ve SEO değerini korur. Ayrıca, canonical başlıkları eklemek, duplicate content (çift içerik) sorununu önler. .htaccess içinde aşağıdaki satırları ekleyerek tüm HTTP isteklerini HTTPS’ye yönlendirebilir ve güvenli bir site sunabilirsiniz:

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Bu yönlendirme, SEO hosting paketlerinin sunduğu ekstra SSL avantajlarıyla birleştiğinde, sitenizin otoritesini artırır.

3. Performans Artırma: Gzip Sıkıştırma ve Önbellekleme

Web sayfalarının hızlı yüklenmesi, kullanıcı deneyimi ve dönüşüm oranları açısından kritiktir. .htaccess dosyasıyla gzip sıkıştırma ve tarayıcı önbellekleme (caching) ayarlarını yapılandırarak, sayfa boyutlarını %70’e kadar küçültebilir ve sunucu yanıt süresini önemli ölçüde azaltabilirsiniz.

Gzip sıkıştırması için aşağıdaki kod bloğunu ekleyin:


  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript

Tarayıcı önbelleklemesi ise, statik dosyaların (CSS, JS, resimler) bir kez indirilip, daha sonraki ziyaretlerde tekrar indirilmemesini sağlar:


  ExpiresActive On
  ExpiresByType image/jpg "access plus 1 year"
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"

Bu ayarlar, AMD Ryzen VDS sunucular gibi yüksek performanslı altyapılarda bile %30‑40 daha düşük gecikme süresi sağlar.

4. Güvenlik Duvarı ve Erişim Kontrolü

4. Güvenlik Duvarı ve Erişim Kontrolü - Apache .htaccess Kullanımı
4. Güvenlik Duvarı ve Erişim Kontrolü

.htaccess, temel bir web uygulama güvenlik duvarı (WAF) gibi çalışabilir. IP engelleme, dosya tiplerine erişim kısıtlaması ve güvenlik başlıkları ekleyerek saldırı yüzeyini azaltabilirsiniz. Örneğin, kötü niyetli IP adreslerini engellemek için:

Order Allow,Deny
Allow from all
Deny from 192.168.1.100
Deny from 203.0.113.0/24

SQL injection ve XSS saldırılarını önlemek için, Content‑Security‑Policy ve X‑Frame‑Options gibi HTTP güvenlik başlıklarını ekleyin:

Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"

Bu başlıklar, tarayıcının zararlı kodları çalıştırmasını engeller ve WAF güvenlik duvarı çözümlerinizle uyumlu bir katman oluşturur.

5. .htaccess ile Hata Sayfaları ve Yeniden Yönlendirme

Kullanıcı deneyimini artırmak için, 404, 500 gibi hata sayfalarını özelleştirmek önemlidir. Özel bir 404 sayfası, ziyaretçiyi site içinde tutar ve SEO kaybını önler. Aşağıdaki kod, hatalı isteklerde “/404.html” sayfasını gösterir:

ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

Kalıcı (301) ve geçici (302) yönlendirmeler, site taşımalarında SEO değerini korur. Örneğin, eski bir blog gönderisini yeni bir kategoriye taşırken:

Redirect 301 /eski-blog/konu1.html /yeni-blog/konu1.html

Bu yönlendirmeler, alan adı (domain) kaydı değişikliklerinde de sorunsuz bir geçiş sağlar.

6. .htaccess Karşılaştırma Tablosu

Özellik Apache .htaccess NGINX (nginx.conf)
Yapılandırma Yeri Klasör bazlı, .htaccess dosyası Sunucu bazlı, tek konfigürasyon dosyası
Performans Etkisi Her istek için dosya okunur, %5‑10 ek yük Yüksek performans, dosya okunmaz
Yönlendirme (Rewrite) mod_rewrite ile esnek rewrite directive ile benzer
Güvenlik Başlıkları Header set komutu add_header komutu
Önbellekleme mod_expires, mod_headers expires, proxy_cache

Tablodan da görüldüğü gibi, .htaccess esnekliği ve hızlı değişiklik yapabilme özelliği sayesinde paylaşımlı kurumsal hosting ortamlarında tercih edilir. Ancak yüksek trafikli siteler, performans kaybını önlemek için NGINX’e geçiş yapabilir.

7. Adım Adım .htaccess Dosyası Oluşturma ve Test Etme

  1. Dosyayı Oluşturun: Sunucunuzun kök dizinine (public_html) .htaccess adlı bir metin dosyası oluşturun. Dosya adı baştaki nokta gizli olmasını sağlar.
  2. Yedek Alın: Mevcut .htaccess dosyanız varsa, bir yedek kopyasını .htaccess.bak olarak saklayın. Böylece hatalı bir değişiklikte geri dönüş yapabilirsiniz.
  3. RewriteEngine’i Etkinleştirin: İlk satırda RewriteEngine On ekleyin. Bu, URL yeniden yazma kurallarının çalışmasını sağlar.
  4. SEO Kurallarını Ekleyin: Temiz URL, 301 yönlendirme ve HTTPS zorlaması gibi kod bloklarını ekleyin.
  5. Güvenlik ve Performans Ayarlarını Yapın: Gzip sıkıştırma, önbellekleme ve güvenlik başlıklarını ekleyin.
  6. Hata Sayfalarını Tanımlayın: ErrorDocument 404 /404.html gibi satırlarla özel hata sayfaları oluşturun.
  7. Test Edin: Tarayıcınızda ve WebPageTest gibi araçlarla sayfa hızını ölçün. Ayrıca curl -I https://example.com/ komutu ile HTTP başlıklarını kontrol edin.

Bu adımları tamamladıktan sonra, Intel i9 VDS sunucular üzerinde de aynı .htaccess dosyasını kullanarak, yüksek performanslı bir ortamda test edebilirsiniz. Hatalı bir kural sunucunun 500 Internal Server Error vermesine neden olabilir; bu durumda yedek dosyayı geri yüklemek sorunu çözer.

Sıkça Sorulan Sorular

.htaccess dosyası ne kadar büyük olabilir?

Apache, .htaccess dosyasının boyutunu teknik olarak sınırlamaz, ancak çok büyük dosyalar her istek için okunacağı için performansı olumsuz etkiler. İdeal olarak 5‑10 KB altında tutmak önerilir.

.htaccess içinde PHP ayarları değiştirilebilir mi?

Evet, php_value ve php_flag direktifleriyle bazı PHP ayarları (ör. memory_limit, upload_max_filesize) .htaccess içinde değiştirilebilir. Ancak bazı hosting sağlayıcıları bu özelliği kısıtlayabilir.

RewriteRule ile birden fazla parametre nasıl yönlendirilir?

Çoklu parametreleri yakalamak için düzenli ifadeler (regex) kullanılır. Örneğin, RewriteRule ^urun/([0-9]+)/([a-z-]+)$ /product.php?id=$1&slug=$2 [L,QSA] şeklinde bir kural, iki parametreyi hedef script’e aktarır.

.htaccess dosyası güvenlik riskleri yaratır mı?

Yanlış yapılandırılmış .htaccess, istenmeyen erişim izinleri veya açık yönlendirmeler oluşturabilir. Bu yüzden IP engelleme, güvenlik başlıkları ve doğru hata sayfaları eklemek kritik öneme sahiptir.

Sonuç: .htaccess ile Sitenizi Güçlendirin

.htaccess dosyası, Apache sunucularının en değerli araçlarından biridir. Doğru yapılandırma sayesinde SEO performansınızı %70’e kadar artırabilir, sayfa yükleme sürelerini %40 azaltabilir ve sitenizi yaygın saldırılara karşı koruyabilirsiniz. Yukarıdaki adımları izleyerek .htaccess dosyanızı oluşturun, test edin ve gerektiğinde güncelleyin. Unutmayın, her büyük değişiklikten önce yedek almak ve test ortamında denemek, olası kesintileri önlemenin en etkili yoludur.

Eğer daha fazla performans ve güvenlik ihtiyacınız varsa, fiziksel sunucu (dedicated server) veya colocation hizmeti gibi çözümleri de değerlendirebilirsiniz. İhtiyacınıza en uygun altyapıyı seçerek, .htaccess’in sunduğu esnekliği en üst düzeye çıkarabilirsiniz.