sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa Web Sunucuları Apache Kurulumu Apache .htaccess ile Yönlendirme Güvenlik ve Op...
🪶 Apache Kurulumu

Apache .htaccess ile Yönlendirme Güvenlik ve Optimizasyon

.htaccess Apache için dizin bazlı yapılandırma sağlar. Yönlendirme, HTTPS zorlama, güvenlik ve cache kuralları içerir.

📅 26 Ocak 2025 👁 54 görüntülenme ⏱ 4 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

.htaccess Nedir?

Apache web sunucusunda .htaccess (hypertext access) dosyası, ana sunucu yapılandırmasını değiştirmeden belirli bir dizin ve alt dizinler için özel yapılandırma kuralları belirlemenizi sağlayan güçlü bir direktif dosyasıdır. Dosya adı nokta ile başladığından Linux sistemlerinde varsayılan olarak gizlidir.

.htaccess dosyası sayesinde hosting hesabınıza root erişimi olmadan bile; URL yönlendirmeleri, erişim kısıtlamaları, özel hata sayfaları, MIME türleri, gzip sıkıştırma, tarayıcı önbelleği ve güvenlik başlıkları gibi pek çok konfigürasyonu uygulayabilirsiniz. WordPress, Joomla, Drupal gibi CMS sistemleri de düzgün çalışmak için .htaccess dosyasına ihtiyaç duyar.

Önemli: .htaccess kullanımı için Apache'de AllowOverride All direktifinin aktif olması gerekir. Aksi takdirde kurallar yok sayılır.

# /etc/apache2/sites-available/example.conf içinde:

    AllowOverride All

Temel .htaccess Kuralları

1. URL Yönlendirme (Redirect)

Kalıcı yönlendirme (301 - SEO açısından önemli):

# Eski URL'den yeni URL'ye 301 yönlendirme:
Redirect 301 /eski-sayfa /yeni-sayfa

# Tam domain yönlendirme:
Redirect 301 / https://www.yenidomain.com/

# RewriteRule ile dinamik yönlendirme:
RewriteEngine On
RewriteRule ^urun/([0-9]+)$ /product.php?id=$1 [R=301,L]

Geçici yönlendirme (302 - kalıcı değil):

Redirect 302 /eski-sayfa /gecici-sayfa

2. HTTPS'e Zorlama

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

www olmayan URL'yi www'ye yönlendirmek için:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

3. WordPress Permalinks için Rewrite Kuralları

WordPress doğru çalışmak için bu kurallara ihtiyaç duyar. WordPress genellikle bunu otomatik oluşturur:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

4. IP Engelleme ve Erişim Kısıtlaması

# Belirli bir IP'yi engelle:
order allow,deny
deny from 1.2.3.4
allow from all

# Belirli bir IP'ye izin ver, diğerlerini engelle (yönetici paneli için):
order deny,allow
deny from all
allow from 85.10.20.30

# Ülkeye göre engelleme (mod_geoip gerektirir, temel yöntem):
# SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry

5. GZIP Sıkıştırma


    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

6. Tarayıcı Önbelleği (Browser Cache)


    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"

7. Güvenlik Başlıkları


    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-XSS-Protection "1; mode=block"
    Header always set Referrer-Policy "strict-origin-when-cross-origin"
    Header always set Permissions-Policy "geolocation=(), microphone=()"

8. Hassas Dosyalara Erişimi Engelleme

# wp-config.php'yi koru:

    order allow,deny
    deny from all


# .htaccess dosyasını koru:

    order allow,deny
    deny from all


# XML dosyalarını koru (WordPress xmlrpc.php):

    order deny,allow
    deny from all

Özet ve Önemli Notlar

  • .htaccess değişikliklerinden önce mutlaka yedek alın
  • Hatalı bir .htaccess satırı siteye erişimi tamamen engelleyebilir (500 Internal Server Error)
  • Apache syntax kontrolü: apachectl configtest veya apache2ctl -t
  • Nginx kullanıyorsanız .htaccess çalışmaz; eşdeğer kuralları nginx.conf'a yazın
  • Performans için mümkünse ana httpd.conf'a taşıyın; .htaccess her istekte okunur

İlgili Makaleler

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al
Etiketler: #ssl #apache #htaccess #performans #güvenlik

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.