Ana Sayfa/Blog/.htaccess Dosyası Rehberi: Apache Sunucu Yapılandırması

.htaccess Dosyası Rehberi: Apache Sunucu Yapılandırması

.htaccess (Hypertext Access), Apache web sunucusunda dizin bazlı yapılandırma yapmak için kullanılan özel bir dosyadır. Ana sunucu yapılandırmasına erişiminiz olmadığında bile URL yönlendirme, güvenlik ayarları, önbellekleme ve daha birçok işlemi bu dosya aracılığıyla kontrol edebilirsiniz.

.htaccess Dosyası Nedir?

.htaccess dosyası, bulunduğu dizin ve alt dizinler için geçerli olan bir yapılandırma dosyasıdır. Dosya adının başındaki nokta, Unix/Linux sistemlerde gizli dosya olduğunu belirtir. Her HTTP isteğinde Apache bu dosyayı okur ve içindeki kuralları uygular.

Önemli: Her istek sırasında okunduğu için, çok sayıda kural performansı etkileyebilir. Mümkünse yapılandırmaları ana httpd.conf dosyasında yapmak daha verimlidir.

mod_rewrite ve URL Yönlendirme

mod_rewrite modülü, URL'leri yeniden yazmak ve yönlendirmek için kullanılır. SEO dostu URL'ler oluşturmanın temelidir.

Temel Yönlendirmeler

# mod_rewrite'ı etkinleştir
RewriteEngine On

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

# www'den www olmayan versiyona yönlendirme
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

# Belirli bir sayfayı yönlendirme
Redirect 301 /eski-sayfa /yeni-sayfa

# Tüm trafiği tek bir dosyaya yönlendirme (SPA)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html [L]

SEO Dostu URL'ler

# urun.php?id=123 → /urun/123
RewriteRule ^urun/([0-9]+)$ urun.php?id=$1 [L,QSA]

# blog.php?slug=merhaba → /blog/merhaba
RewriteRule ^blog/([a-z0-9-]+)$ blog.php?slug=$1 [L,QSA]

# .php uzantısını gizle
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)$ $1.php [L]

Güvenlik Başlıkları

HTTP güvenlik başlıkları, saldırılara karşı önemli bir savunma katmanı sağlar:

# XSS koruması
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-XSS-Protection "1; mode=block"

# Strict Transport Security (HSTS)
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

# Content Security Policy
Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'"

# Referrer Policy
Header set Referrer-Policy "strict-origin-when-cross-origin"

# Permissions Policy
Header set Permissions-Policy "camera=(), microphone=(), geolocation=()"

Önbellekleme (Caching)

Statik dosyaların önbelleğe alınması sayfa yükleme hızını önemli ölçüde artırır:

# mod_expires ile önbellekleme
<IfModule mod_expires.c>
  ExpiresActive On

  # Görseller: 1 yıl
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType image/svg+xml "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"

  # CSS ve JS: 1 ay
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"

  # HTML: önbellek yok
  ExpiresByType text/html "access plus 0 seconds"
</IfModule>

# GZIP sıkıştırma
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/css application/javascript
  AddOutputFilterByType DEFLATE application/json image/svg+xml
</IfModule>

Özel Hata Sayfaları

# Özel hata sayfaları
ErrorDocument 404 /hata/404.html
ErrorDocument 403 /hata/403.html
ErrorDocument 500 /hata/500.html

Erişim Kontrolü

# Belirli dosyalara erişimi engelle
<FilesMatch ".(env|log|ini|conf)$">
  Require all denied
</FilesMatch>

# .htaccess dosyasına erişimi engelle
<Files .htaccess>
  Require all denied
</Files>

# Dizin listelemeyi kapat
Options -Indexes

# Belirli IP'lerden erişimi engelle
Require not ip 192.168.1.100

Sık Yapılan Hatalar

.htaccess kurallarınızı hızlıca oluşturmak mı istiyorsunuz? SiteScripti'nin .htaccess Oluşturucu ve Sunucu Yapılandırma araçlarıyla yönlendirme, güvenlik ve önbellekleme kurallarını kolayca yapılandırabilirsiniz.

Bu konuyla ilgili araçlarımızı da deneyin: Redirect Checker, Robots.txt Oluşturucu, Güvenlik Başlıkları Analiz

← Tüm Yazılar