.htaccess Dosyası: Kapsamlı Rehber 2025

Written by OpenSEO

htaccess dosyası nedir

htaccess Nedir Ne İşe Yarar?

.htaccess (Hypertext Access), Apache web sunucusu tarafından kullanılan bir yapılandırma dosyasıdır. Bu dosya, web sunucunuzun ayarlarını kontrol etmenizi sağlayarak sitenizin birçok fonksiyonunu özelleştirebilmenize, güvenliğini ve performansını optimize edebilmenize olanak tanır.

.htaccess dosyasının temel kullanım alanları:

  • Dosya ve dizin koruması
  • URL yönlendirme ve yeniden yazma
  • Özel hata sayfaları oluşturma
  • Erişim kontrolü ve güvenlik önlemleri
  • Önbellekleme ve sıkıştırma ayarları
  • SEO optimizasyonu
.htaccess ile kontrol

htaccess Nasıl Çalışır?

.htaccess dosyası, web sunucusunun belirli bir dizindeki yapılandırmasını değiştirmek için kullanılır. Bu dosya, bulunduğu dizin ve alt dizinlerdeki tüm dosyalar için geçerli olan kuralları içerir.

Çalışma prensibi:

  • Dosya adı tam olarak “.htaccess” şeklindedir (nokta ile başlar)
  • Sunucu, bir istek aldığında ilgili dizindeki .htaccess dosyasını okur
  • Dosyada belirtilen kuralları uygular
  • Kurallar sırayla işlenir (üstten alta doğru)

Örnek basit .htaccess kodu:

# Örnek .htaccess kodu
RewriteEngine On
RewriteRule ^haberler/([0-9]+)/?$ haber-detay.php?id=$1 [L]

Web Site Performansını Artırmak için htaccess Nasıl Kullanılır?

.htaccess dosyası ile web sitenizin performansını önemli ölçüde artırabilirsiniz:

1. Gzip Sıkıştırması

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

2. Önbellekleme (Caching)

<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 text/css "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType text/javascript "access plus 1 month"
    ExpiresByType text/html "access plus 1 day"
</IfModule>

3. Dosya Türü Optimizasyonu

# CSS ve JS dosyalarını optimize et
<FilesMatch "\.(css|js)$">
    SetOutputFilter DEFLATE
</FilesMatch>

htaccess ve SEO: Web Sitenizin SEO’sunu Geliştirmek

.htaccess dosyası, SEO çalışmalarınızda kritik öneme sahiptir:

1. SEO Dostu URL’ler

RewriteEngine On
RewriteRule ^urunler/([a-zA-Z0-9-]+)/?$ urun-detay.php?slug=$1 [L]

2. Trailing Slash Ekleme/Kaldırma

# Trailing slash ekleme
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

3. Canonical URL Yönlendirmesi

# WWW'den non-WWW'ye yönlendirme
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

Dikkat Edilmesi Gerekenler:

  • 301 yönlendirmeleri doğru kullanılmalı
  • URL yapısı tutarlı olmalı
  • Kırık linkler önlenmeli
  • Gereksiz yönlendirmelerden kaçınılmalı

Hemen “RewriteEngine On” komutunun dünyasına dalalım!

URL Yönlendirme için RewriteEngine On

RewriteEngine, .htaccess’in en güçlü özelliklerinden biridir:

RewriteEngine On

# Basit yönlendirme örneği
RewriteRule ^eski-sayfa$ /yeni-sayfa [R=301,L]

# Dinamik URL yönlendirme
RewriteRule ^kategoriler/([^/]+)/?$ kategori.php?slug=$1 [L]

# Query string ile yönlendirme
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^eski-urun\.php$ /yeni-urun/%1? [R=301,L]

Bu örnekte:

  • RewriteEngine On: Yönlendirme motorumuzu çalıştırıyoruz.
  • RewriteRule: Bir yeniden yazma kuralı tanımlıyoruz.
  • ^eski-sayfa.html$: Ziyaretçinin tarayıcısında görünen eski URL’nin kalıbı.
  • yeni-sayfam.html: Ziyaretçinin yönlendirileceği yeni URL.
  • [R=301,L]: 301 (kalıcı yönlendirme) durum kodunu ve bu kuraldan sonra başka işleme gerek olmadığını belirtiyoruz.

Ne işe yarar?

  1. Yönlendirmeler: Eski sayfaların yeni konumlarına yönlendirilmesi. Bunu SEO amacıyla ya da site yapısını değiştirirken kullanabilirsiniz.
  2. Özel URL’ler: Karışık görünen URL’leri daha kullanıcı (ve arama motoru) dostu hale getirme. Örneğin /urun.php?id=123 yerine /urun/mavi-tisort şeklinde bir URL yapısı oluşturabilirsiniz.
  3. Güvenlik: Belirli sayfaları sadece yetkili kişilere açma, sitedeki görsellerin başka sitelerde izinsiz kullanılmasını engelleme gibi güvenlik amaçlı yönlendirmeler.

Dikkat Edilmesi Gerekenler

  • Yönlendirme kuralları karmaşıklaştıkça sunucunuzdaki yük artabilir. Gereksiz kuralları kaldırmaya özen gösterin.
  • “RewriteEngine On” komutunu yazmayı unutursanız, RewriteRule kurallarınız çalışmaz!
  • Her zaman yaptığınız değişiklikleri test edin, hatalar sitenizin erişilememesine yol açabilir.

Son Bir İpucu: İşin başında, hazır örneklerden yola çıkın ve kuralları yavaş yavaş özelleştirin. Böylece hem nasıl çalıştığını öğrenir hem de potansiyel sorunlardan kaçınırsınız.

URL Standartlaştırma ve Yönlendirmeler

.htaccess ile URL standartlaştırma örnekleri:

# HTTP'den HTTPS'e yönlendirme
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# WWW/Non-WWW tercihinize göre standartlaştırma
# WWW tercih ediliyorsa:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

# Non-WWW tercih ediliyorsa:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Avantajları:

  • SEO için tutarlı URL yapısı
  • Duplicate content sorununu önleme
  • Kullanıcı deneyimini iyileştirme

Hata Sayfalarını Özelleştirme: Sitenize Kişilik Katın

Hata sayfaları, web sitenizin kullanıcı deneyiminin önemli bir parçasıdır. 404 “Sayfa Bulunamadı” veya 500 “Sunucu Hatası” gibi hatalarla karşılaşan ziyaretçilere ne olduğunu bildirir. Bu sayfaları özelleştirerek, ziyaretçilerinizi bilgilendirebilir, sitenizde kalmalarını sağlayabilir ve markanızın imajını güçlendirebilirsiniz.

Hata Sayfalarını Özelleştirme:

# 404 - Sayfa bulunamadı
ErrorDocument 404 /404.html

# 500 - Sunucu hatası
ErrorDocument 500 /500.html

# 403 - Erişim engellendi
ErrorDocument 403 /403.html

# 401 - Yetkisiz erişim
ErrorDocument 401 /401.html

Avantajları:

  • Kullanıcı deneyimini iyileştirme
  • Marka bilinirliğini artırma
  • Geri kazanılmış trafik
  • Profesyonel görünüm

İpuçları:

  • Tutarlı tasarım kullanın
  • Ana sayfaya link ekleyin
  • Arama çubuğu ekleyin
  • Basit ve anlaşılır dil kullanın

Araçlar:

  • Google Analytics entegrasyonu
  • Geri bildirim formları
  • Site içi arama
# 404 - Sayfa bulunamadı
ErrorDocument 404 /404.html

# 500 - Sunucu hatası
ErrorDocument 500 /500.html

# 403 - Erişim engellendi
ErrorDocument 403 /403.html

# 401 - Yetkisiz erişim
ErrorDocument 401 /401.html

Özet:

Hata sayfalarını özelleştirmek, kullanıcı deneyimini, marka kimliğini ve SEO’yu geliştirmenin harika bir yoludur. Yukarıdaki ipuçlarını ve araçları kullanarak, ziyaretçilerinize unutulmaz bir deneyim sunabilirsiniz.

İzinleri ve Güvenlik Ayarlarını Yapılandırma

.htaccess ile güvenlik önlemleri:

1. Dizin Listeleme Engelleme

Options -Indexes

2. Belirli Dosya Türlerine Erişimi Engelleme

<Files ~ "\.(env|log|sql)$">
    Order allow,deny
    Deny from all
</Files>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

İzinleri ve Güvenlik Ayarlarını Yapılandırmak için Araçlar:

  • IP tabanlı erişim kontrolü
  • Kullanıcı kimlik doğrulama
  • Dosya ve dizin koruması
  • Kötü bot engelleme

WordPress için .htaccess Dosyası Oluşturma

WordPress .htaccess temel yapısı:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Önemli Notlar:

  • .htaccess dosyasında hata yaparsanız, web sitenizin düzgün çalışmasını engelleyebilirsiniz. Bu nedenle, .htaccess ile yapacağınız değişikliklerde dikkatli olun ve yedekleme almayı unutmayın.
  • .htaccess dosyası ile yapabilecekleriniz, web sunucunuzun türüne ve hosting sağlayıcınıza göre değişiklik gösterebilir.

Htaccess Dosyası Hakkında Daha Fazla Bilgi:

Wordpress için yararlı .htaccess kodları

1. Güvenlik Önlemleri

# wp-config.php dosyasını koruma
<files wp-config.php>
order allow,deny
deny from all
</files>

# Giriş sayfasını koruma
<Files wp-login.php>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
</Files>

2. Performans İyileştirmeleri

# Gzip sıkıştırma
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript
</IfModule>

Şüpheli IP Adreslerini Yasaklama

WordPress sitenizi korumak için şüpheli IP adreslerini yasaklayabilirsiniz. Bu, sitenize yapılan brute force saldırılarını ve diğer istenmeyen etkinlikleri engellemeye yardımcı olabilir.

Şüpheli IP Adreslerini Yasaklama Yöntemleri:

1. Manuel IP Engelleme

# Tekil IP engelleme
order allow,deny
deny from 123.456.789.0
allow from all

# IP aralığı engelleme
deny from 123.456.789.0/24

2. Dinamik Engelleme

# Kötü niyetli botları engelleme
RewriteCond %{HTTP_USER_AGENT} ^.*(badbot|malicious).*$ [NC]
RewriteRule .* - [F,L]

WordPress’te Dosya Yükleme Boyutunu Artırma

.htaccess ile dosya yükleme limiti artırma:

# PHP dosya yükleme limiti
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

.htaccess ile XML-RPC Dosyasına Erişimi Devre Dışı Bırakma

XML-RPC erişimini engelleme:

# XML-RPC erişimini engelle
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

WordPress’te Yazar Taramalarını Engelleme

Yazar arşiv sayfalarını engelleme:

# Yazar Taramalarını Engelleme

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=d+) [NC]
RewriteRule .* - [F]

Bu kapsamlı rehber, .htaccess dosyasının temel kullanımlarını ve WordPress için özel optimizasyonları içermektedir. Her değişiklik yapmadan önce yedek almayı ve değişiklikleri test etmeyi unutmayın.

Sizin aklınıza takılan bir .htaccess kullanımı var mı? Fikirlerinizi paylaşın!

OpenSEO

Ben Yılmaz. OpenSEO markası altında, WordPress sitelerinin hız, güvenlik ve SEO problemlerini kökten çözüyorum. 8 yılı aşkın tecrübemle projenizin tek muhatabıyım.

WordPress On-Page SEO: 2024 Kapsamlı Rehber ve Stratejiler

Yorum yapın