.htaccess Nedir?
htaccess nedir, Apache web sunucularında kullanılan bir yapılandırma dosyasıdır. Bu dosya, bir web sitesinin belirli dizinleri için yapılandırma kurallarını belirlemenize olanak tanır. Dosya adı “Hypertext Access” teriminden gelir ve genellikle sitenin kök dizininde bulunur.
.htaccess Ne İşe Yarar?
htaccess ne işe yarar sorumuzun cevabı için bir kaç maddeyi aşağıda sizler için belirttim.
- SEO Dostu URL’ler: Dinamik ve karmaşık URL’leri sade ve anlaşılır URL’lere dönüştürme.
- Yönlendirme İşlemleri: 301 (kalıcı) ve 302 (geçici) yönlendirme kuralları oluşturma.
- Erişim Kontrolü: Belirli IP adreslerini engelleme veya izin verme.
- Hata Sayfalarını Özelleştirme: Özel 404, 500 gibi hata sayfaları oluşturma.
- Hotlink Koruması: Başka sitelerin sizin dosyalarınızı izinsiz kullanmasını engelleme.
- HTTP’den HTTPS’ye Yönlendirme: Güvenli bağlantılar için trafiği HTTPS’ye yönlendirme.
.htaccess Nasıl Kullanılır?
1. .htaccess Dosyası Oluşturma
- Bir metin editörü (Notepad, VS Code vb.) açın.
- Dosya adı olarak
.htaccess
yazın ve UTF-8 formatında kaydedin. - Dosyayı sitenizin veya yerel sunucunuzun kök dizinine (public_html) yükleyin.
2. SEO Dostu URL Oluşturma
htaccess, genellikle bir projede htaccess ile seo dostu url oluşturmak için kullanılan bir yoldur. Dinamik URL’ler, genellikle veritabanı üzerinden çalışan ve kullanıcı dostu olmayan yapıya sahiptir.
Dinamik bir URL örneği:
https://site.com/urun.php?id=123
Bu tür bir URL, arama motorları için anlam ifade etmez ve kullanıcıların hatırlaması zor olabilir. Bunun yerine, URL’yi daha anlaşılır bir hale getirmek için SEO dostu bir yapıya dönüştürebiliriz:
SEO dostu hale getirilmiş hali:
https://site.com/urun/123
SEO Dostu URL’nin Faydaları
- Kullanıcı Deneyimi: Daha okunabilir ve hatırlanabilir URL’ler sunar.
- SEO Performansı: Anahtar kelimeler içeren URL’ler arama motorlarında daha iyi sıralama alabilir.
- Güven ve Tıklama Oranı: Kullanıcılar sade ve temiz URL’lere daha fazla güvenir.
.htaccess
kodu:
RewriteEngine On RewriteRule ^urun/([0-9]+)$ urun.php?id=$1 [L]
- Apache Sunucusu:
.htaccess
dosyası yalnızca Apache sunucularında çalışır. mod_rewrite
Modülü: Apache’de etkin olmalıdır.
RewriteRule ^urun/([0-9]+)$ urun.php?id=$1 [L]
Dinamik URL’yi aşağıda detaylıca inceleyelim:
^urun/([0-9]+)$
:^
: URL’nin başlangıcını temsil eder.urun/
: Kullanıcının gireceği URL’nin ilk kısmıdır.([0-9]+)
: Parantez içindeki ifade, bir veya daha fazla rakamı yakalar. Bu, ürün ID’sini temsil eder.$
: URL’nin sonunu belirtir.
urun.php?id=$1
:urun.php
: SEO dostu URL’nin arka planda yönlendireceği dosya.id=$1
: Kullanıcı URL’deki rakamı ([0-9]+
) girer.$1
, bu rakamı dinamik olarak alır veurun.php
dosyasına iletir.[L]
: Bu kuralın son olduğunu ve başka bir kurala geçilmeyeceğini belirtir.
Yani sunucu urun/123’ü algılar. urun.php?id=123 dosyasını çağırır. Sonuç olarak kullanıcı, arka planda dinamik bir dosyaya yönlendirilmiş olur.
Eğer URL çalışmıyorsa, sunucunuzda mod_rewrite modülünün aktif olup olmadığını kontrol edin.
HTTP’den HTTPS’ye Yönlendirme
Web sitenizi HTTPS protokolüne yönlendirmek için aşağıdaki kodu ekleyebilirsiniz:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Özel 404 Hata Sayfası Oluşturma
Kendi hata sayfalarınızı belirlemek için:
ErrorDocument 404 /404.html ErrorDocument 403 /403.html
Burada sayfalar html olmak zorunda değil isterseniz php vs. yapabilirsiniz. Diğer hata kodları için ErrorDocument’ten sonra hata kodunu yazın ve dosya yolunu belirsin. Dosya yolunu doğru belirttiğinizden emin olun. Aksi halde düzgün çalışmaz.
IP Adreslerini Engelleme
<Limit GET POST> Order Deny,Allow Deny from 192.168.1.1 </Limit>
Tarayıcıdan Dosyaya Erişim Engelleme
Tarayıcıdan istediğiniz dosyalara erişimi engelleyerek dosya güvenliği sağlayabilirsiniz.
<Files "baglanti.php"> Require all denied </Files>
Bu kullanım şekli dosyaya tarayıcı üzerinden doğrudan erişimi engelleyecektir. Dosyaya sadece include ve require ile erişilebilir.
Bu yöntemle URL’lerinizi SEO dostu hale getirerek, hem arama motorlarının hem de kullanıcıların sitenizi daha kolay anlamasını sağlayabilir ve dosya güvenliğinizi artırabilirsiniz! 😊