Merhaba arkadaşlar bu yazımda sizlere nasıl SEF Link oluşturulacağından bahsedeceğim.

Bu yazımı şu başlıklar altında inceleyeceğim,

  • SEF Link Nedir ?
  • SefLink Oluşturma

SEF Link Nedir ?

SEF Link, Seo Friendly Link’in açılımıdır ve arama motorlarının hoşuna gidecek tarz linkler olmalıdır. Genel olarak bir kaç örneği vardır bu örnekler

  • siteadresi.com/blog-basligi
  • siteadresi.com/15/blog-basligi
  • siteadresi.com/blog-basligi/15

şeklinde olanlardır. Yani genel olarak bir çok internet sitesinde göreceğiniz link yapısıdır. Bu link yapısını PHP’nin String Fonksiyonlarını kullanarak çok kolay bir şekilde elde edebilirsiniz.

SEF Link Oluşturma

SEF Link oluşturmak için biraz php bilgisi ve .htaccess dosyamızı biraz düzenlememiz gerekir. .htaccess dosyasının ne olduğunu bilmiyorsanız bu konu hakkında yazmış olduğum yazıya gidebilirsiniz.

Şimdi öncelikle bir metin verelim ve onu nasıl bir yapıya çevireceğimizden bahsedeyim.

<?php
// Verilen Metin
  $verilen = 'SEF Link Oluşturma';
// SEF Link'e Çevirilecek Hali
  $sef = 'sef-link-olusturma';
?>

şeklinde olmalıdır. Burada ne yaptığımıza bakarsak öncelikle tüm karakterlerin boyutunu küçülttük daha sonra türkçe karakteri düzelttik ve boşluklar yerine “-” işaretini yerleştirdik. Bu işlemi bir çok yerde kullanacağımız için bunu bir fonksiyon olarak yazacağım.

<?php 
function SefLink($str)
{

  $str = str_replace(
    ['ı','ğ','ö','ç','ş','ü','İ','Ğ','Ü','Ş','Ç','Ö'],
    ['i','g','o','c','s','u','I','G','U','S','C','O'],
    $str);
    $str = strtolower($str);
    $str = preg_replace('/[^a-z0-9]/','-',$str);
    $str = preg_replace('/-+/','-',$str);
  return trim($str,'-');
}
?>

Bu fonksiyonda yapılan işlemlerden bahsetmek gerekirse

  • Türkçe karakterler, İngilizce karakter karşılıklarına çevrilir.
  • Tüm karakter küçük harfe dönüştürülür.
  • Tüm boşluklar ve özel karakterler yerine “-” işareti yerleştirilir.
  • Arka arkaya tekrar eden “-” işaretleri sadece bir adet “-” işaretini dönüştürülür.
  • En son olarak trim fonksiyonuna “-” karakterini 2. parametre olarak göndererek. Başlığımızın başında ve sonunda oluşan gereksiz “-” işaretleri silinir.

Bunu hallettikten sonrası ise tamamen işimiz htaccess dosyası ile oluyor.

htacces hakkında yazmış olduğum yazıyı incelediyseniz htaccess ile link yapılarını manipüle edebileceğimizi görmüşsünüzdür. Şimdi bu işlemi yapma zamana

RewriteEngine On

RewriteRule ^/([a-zA-Z0-9-_]+)$ blog.php?title=$1 [NC,QSA]

Burada yaptığımız işlemlerden detaylı olarak bahsetmek gerekirse

Öncelikle kodlamış olduğunuz linkin yapısı blog.php?title=blog-baslik şeklinde olacağını varsayıyorum ve eğer /([a-zA-Z0-9-_]+) şeklinde bir link yapısı ile karşılaşırsan blog.php?title= sayfasının çıktısını ekrana vermesini söylüyoruz.

Burada bilmeniz gereken önemli nokta linkleri manipüle ederken olmasını istediğimiz link yapısı “^” işareti başlar ve “$” işareti ile biter.

Özet,

Bu yazımda sizlere SEF Linklerin nasıl oluşturulduğundan bahsettim. SEF Link oluşturan bir PHP fonksiyonu yazdım ve bunun sırasıyla ne işlem yaptığından bahsettim daha sonra ise htaccess dosyasından faydalanarak linkimizi nasıl manipüle edebileceğimizden bahsettim.