.htaccess Dosyası Nedir? Kullanım Alanları Nelerdir? .htaccess Dosyası ile URL Yönlendirme ve Güvenlik Önlemleri

E-posta Hosting Kampanya

.htaccess, Apache web sunucularında kullanılan, sitenizin yapılandırmasını özelleştirmenizi sağlayan güçlü bir yapılandırma dosyasıdır. Bu dosya sayesinde URL yönlendirme işlemleri yapabilir, güvenlik önlemleri alabilir, hata sayfalarını yönetebilir ve performans optimizasyonları gerçekleştirebilirsiniz.

Bu rehberde, .htaccess dosyası ile URL yönlendirme kuralları ve güvenlik önlemlerini detaylı bir şekilde ele alacağız.

.htaccess Nedir ve Neden Kullanılır?

.htaccess (Hypertext Access), Apache web sunucularında dizin bazında yapılandırma değişiklikleri yapmaya izin veren bir dosyadır.

.htaccess Kullanım Alanları:

  • URL yönlendirme işlemleri (301, 302, www yönlendirme, HTTP-HTTPS yönlendirme vb.)
  • Yetkisiz erişimleri engelleme (IP engelleme, dizin erişimi kapatma)
  • Dosya ve dizin erişim izinlerini düzenleme
  • Hata sayfalarını özelleştirme (404, 500, vb.)
  • Cache kontrolü ve performans artırma

.htaccess kullanırken dikkat edilmesi gerekenler:

  • Küçük bir hata bile web sitenizi erişilemez hale getirebilir.
  • Kod değişikliği yapmadan önce yedeğini alın.
  • Yanlış kurallar site performansını olumsuz etkileyebilir.

.htaccess ile URL Yönlendirme Kuralları

1. 301 Kalıcı Yönlendirme

Eski URL’yi yeni bir URL’ye yönlendirmek için:

Redirect 301 /eski-sayfa.html https://www.siteadiniz.com/yeni-sayfa.html

Örnek:
Eski blog yazınızın URL’sini değiştirdiyseniz:

Redirect 301 /blog/eski-yazi.html https://www.siteadiniz.com/blog/yeni-yazi.html

Bu sayede eski bağlantıyı ziyaret eden kullanıcılar ve arama motorları otomatik olarak yeni sayfaya yönlendirilir.

2. Tüm HTTP Trafiğini HTTPS’ye Yönlendirme

Eğer sitenize SSL sertifikası yüklediyseniz, tüm HTTP trafiğini HTTPS’ye yönlendirmek için:

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

Bu kod, sitenizi ziyaret eden tüm HTTP isteklerini güvenli HTTPS bağlantısına yönlendirecektir.

3. WWW Olmayan Trafiği WWW’ye Yönlendirme veya Tam Tersi

www.siteadiniz.com’a yönlendirme yapmak için:

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

www kaldırarak yönlendirme yapmak için:

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

SEO açısından tutarlı bir yapı kullanmak önemlidir. Hem www hem de www’süz versiyonların açık olması SEO açısından zararlıdır.

4. Belirli Bir Dosya veya Dizini Başka Bir Sayfaya Yönlendirme

Belirli bir dosyanın yönlendirilmesi:

Redirect 301 /eski-dosya.pdf https://www.siteadiniz.com/yeni-dosya.pdf

Belirli bir dizinin yönlendirilmesi:

RedirectMatch 301 ^/eski-klasor/(.*)$ https://www.siteadiniz.com/yeni-klasor/\

5. 404 Hata Sayfası Yönlendirme

Özel bir 404 hata sayfası oluşturup bunu ziyaretçilere göstermek için:

ErrorDocument 404 /404.html

Bu kod, bir sayfa bulunamadığında otomatik olarak 404.html sayfasına yönlendirecektir.

.htaccess ile Güvenlik Önlemleri

1. Dizin Listelemeyi Kapatma

Eğer sunucunuzda dizin listeleme açık ise, tarayıcıdan dizin erişimi sağlanabilir. Bunu engellemek için:

Options -Indexes

Bu kod, kullanıcıların www.siteadiniz.com/uploads/ gibi dizinlere erişmesini engeller.

2. Belirli IP Adreslerini Engelleme

Belirli IP adreslerini sitenize erişmesini engellemek için:

Order Deny,Allow
Deny from 192.168.1.1
Deny from 45.67.89.101

Eğer belirli bir IP aralığını engellemek isterseniz:

Deny from 192.168.1.

Bu, 192.168.1.0 – 192.168.1.255 aralığındaki tüm IP’leri engelleyecektir.

3. .htaccess Dosyasını Korumak

Eğer saldırganlar .htaccess dosyanıza erişirse, sitenizi tehlikeye sokabilirler. Bu yüzden .htaccess dosyanızı koruyun:

<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

Bu kod sayesinde .htaccess dosyanıza dışarıdan erişim engellenir.

4. Belirli Dosya Türlerine Erişimi Engelleme

Örneğin, .xml, .ini veya .env gibi hassas dosyalara erişimi kapatmak için:

<FilesMatch "\.(xml|ini|env)$">
Order Allow,Deny
Deny from all
</FilesMatch>

Bu kod sayesinde config.ini, .env gibi dosyalara dışarıdan erişim engellenir.

5. Sadece Belirli IP’lere Erişim İzni Verme

Eğer sadece belirli bir IP adresine site erişimi vermek istiyorsanız:

Order Deny,Allow
Deny from all
Allow from 192.168.1.100

Bu, sadece 192.168.1.100 IP adresine erişim izni verecektir.

6. Dosya İndirmelerini Engelleme

Eğer PDF, ZIP, MP3 gibi dosyaların indirilmesini engellemek isterseniz:

<FilesMatch "\.(pdf|zip|mp3)$">
Order Deny,Allow
Deny from all
</FilesMatch>

Bu kod sayesinde kullanıcılar belirtilen dosyaları indiremeyecektir.

Sonuç

.htaccess dosyası, hem SEO açısından URL yönlendirmeleri yapmak hem de sitenizin güvenliğini artırmak için oldukça güçlü bir araçtır.

Bu rehberde, en yaygın kullanılan .htaccess komutlarını ele aldık. Eğer Apache web sunucusunda çalışıyorsanız, bu yapılandırmalar sitenizin güvenliğini artıracak ve doğru yönlendirmelerle SEO performansınızı iyileştirecektir.

Değişiklik yapmadan önce .htaccess dosyanızın yedeğini almayı unutmayın!