Merhaba Webkolog takipçileri! Bir web sitesi için arama motoru optimizasyonu (SEO) ne kadar önemliyse, sitenin URL yapısı da o kadar önemlidir. Anlaşılır, okunaklı ve anahtar kelime içeren URL'ler, hem arama motorları hem de kullanıcılar için daha caziptir. Bu tür URL'lere SEF (Search Engine Friendly - Arama Motoru Dostu) URL denir. Bugünkü makalemde, bu SEF URL'leri PHP tarafında nasıl yöneteceğimizi ve Apache sunucularında .htaccess
dosyası kullanarak nasıl oluşturacağımızı anlatacağım.
SEF URL'ler Neden Önemlidir?
Geleneksel olarak, dinamik web sitelerinde URL'ler https://www.webkolog.net/sayfa.php?id=123&kategori=haberler
gibi parametreler içerir. Bu URL'ler hem kullanıcının sayfa içeriği hakkında fikir edinmesini zorlaştırır, hem de arama motorları için ideal değildir. SEF URL'ler ise https://www.webkolog.net/haberler/yazilim-gelistirme-ipuclari
gibi temiz ve açıklayıcı bir yapıya sahiptir. Bu durum, sitenizin SEO performansını artırır ve kullanıcı deneyimini iyileştirir.
.htaccess Dosyası ve Mod_Rewrite
SEF URL'leri oluşturmanın en yaygın yolu, Apache sunucusunda mod_rewrite modülünü kullanmaktır. Bu modül, sunucuya gelen URL'leri yeniden yazarak, kullanıcıya gösterilen URL ile arka planda çalışan gerçek URL arasında bir köprü kurar. Bu işlemi yapmak için projemizin kök dizinine bir .htaccess
dosyası oluşturup içine kuralları yazarız.
Başlamadan önce, Apache sunucunuzda mod_rewrite
modülünün aktif olduğundan emin olun. XAMPP veya benzeri bir yerel sunucu kullanıyorsanız, Apache'nin yapılandırma dosyası olan httpd.conf
içinde LoadModule rewrite_module modules/mod_rewrite.so
satırının başındaki #
işaretini kaldırıp sunucuyu yeniden başlatmanız yeterlidir.
SEF URL Kuralları Yazma
.htaccess
dosyasının içine yazdığımız kurallar, bir şablonu takip eder.
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^TARAYICIDAN_GİRİLECEK_SAYFA_URL$ YÖNLENDİRİLECEK_SAYFA [L,NC]
Options +FollowSymlinks
: Sembolik linklerin takip edilmesini sağlar.RewriteEngine On
: URL yönlendirme motorunu aktif eder.RewriteRule
: Yönlendirme kuralını tanımlar.^...$
: Düzenli ifade (regex) desenidir.^
URL'nin başlangıcını,$
ise bitişini temsil eder.[L,NC]
: Kurala ait modlardır.L
(Last), başka bir kurala geçilmemesi için son kural olduğunu belirtir.NC
(No Case), küçük-büyük harf duyarlılığının kaldırılmasını sağlar.
1. Basit bir SEF URL oluşturma
https://www.webkolog.net/hakkimizda.html
adresini, aslında https://www.webkolog.net/sayfa.php?sayfa=hakkimizda
adresine yönlendirelim.
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^hakkimizda.html$ sayfa.php?sayfa=hakkimizda [L,NC]
Kullanıcı tarayıcıda hakkimizda.html
yazdığında, sunucu arka planda sayfa.php?sayfa=hakkimizda
adresini çalıştırır ancak adres çubuğunda hakkimizda.html
görünmeye devam eder.
2. Dinamik SEF URL oluşturma
En sık kullanılan yöntem, URL'deki dinamik parametreleri yakalamaktır. Örneğin, https://www.webkolog.net/blog/makale-basligi
gibi bir URL'yi https://www.webkolog.net/index.php?kategori=blog&sayfa=makale-basligi
olarak yönlendirelim.
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?kategori=$1&sayfa=$2 [L,NC]
Burada parantez içine aldığımız ifadeler, $1
ve $2
olarak yakalanır ve index.php
'ye parametre olarak gönderilir. [a-zA-Z0-9_-]+
deseni, harf, rakam, alt çizgi ve tire karakterlerinden oluşan bir veya daha fazla karakteri eşleştirir.
Son olarak, PHP tarafında bu parametreleri nasıl alacağımıza bakalım. $_GET
global dizisi sayesinde URL'den gelen kategori
ve sayfa
değişkenlerine kolayca erişebiliriz.
<?php
$kategori = $_GET['kategori'];
$sayfa = $_GET['sayfa'];
// Veritabanından gelen kategori ve sayfaya göre içeriği çekme işlemleri...
echo "Gelen kategori: " . $kategori . "<br>";
echo "Gelen sayfa: " . $sayfa;
?>
Gördüğünüz gibi, .htaccess
ile SEF URL oluşturmak ve PHP ile bu URL'leri yönetmek oldukça basittir. Bu yöntem, sitenizi hem arama motorları hem de kullanıcılar için daha çekici hale getirecektir.
Webkolog'u takipte kalın!
Hepinize bol kodlu ve başarılı projeler dilerim!
0 yorum:
Yorum Gönder