14 Eylül 2008 Pazar

PHP ile SEF URL (SEO)

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