PHP Seo dostu url yapımı (php url rewrite-url routing)

PHP Seo dostu url yapımı (php url rewrite-url routing)
17 Nisan 2015PHP

Merhaba , daha önce asp.net için seo dostu url yapımını anlatan bir makale yayımlamıştım. Şimdi bunun benimde kullandığım php için olanını yapalım. Bilindiği üzere seo dostu url'ler arama motorları (google,yandex vb.) tarafından daha kolay indexlenip daha üst sıralarda çıkmaya yarayan kullanımların genel adıdır.
Eğer asp.net için olan yönlendirme yazımız için geldiyseniz buraya tıklayınız. Şimdi .htaccess dosyamızı açıp aşağıdaki kodları işleyerek başlayabiliriz. htaccess dosyasına ulaşamıyorsanız tıklayın

Şimdi bizim url rewrite ile yönlendireceğimiz sayfamıza gelelim. Sayfamızın urunler.php olduğunu varsayalım ve bizim sayfamız dışarıdan aldığı id değişkenlerine göre dinamizm gösterebilir. Yani urunler.php?id=3 10 litrelik sıvı yağ ürünümüzün linki iken urunler.php?id=5 1 litrelik zeytin yağı ürünümüzün linki olabilir. Biz A ve B linklerini aşağıdaki şekilde de gosterebiliriz.

www.sitemizinadi.com/10-litrelik-sivi-yag-u3.html ve www.sitemizinadi.com/litrelik-zeytin-yagi-u5.html 

Gördüğünüz gibi direkt url den sayfa içeriği hakkında bilgi sahibi olunabilidi. Bu iki linkin de tek bir sayfaya yani urunler.php ye gitmesini sağlayabiliriz. linklerde bulunan u3 u5 gibi değişkenler bizim linklerimizdeki idleri temsil ediyor. Çünkü urunler.php gelen linkin hangi urune ait olduğunu sadece id değişkeni ile anlayabilir.

htaccess dosyamıza aşağıdaki kodu ekleyerek bu değişkenleri sanki urunler.php ye gidiyormuş gibi gösterebiliriz.
 

RewriteEngine on
#rewritebase /
RewriteRule ^(.*)-u(.*).html$ urunler.php?id=$2&gereksiz=$1[L,NC]

burada urlmizin -u dan önceki kısmını gereksiz -u dan sonraki kısmını da id olarak atıyoruz. Bu işlemi yaptıktan sonra www.sitemizinadi.com/10-litrelik-sivi-yag-u3.html linkimiz urunler.php?id=3 yazmışız gibi işlem görecektir.

Şimdi gelin urun başlığımızı direkt olarak bir fonksiyon ile bu yapıya benzetelim. Yani öyle bir şey yapalım ki fonksiyona 10 Litrelik Sıvı Yağ ve 3 değerlerini gönderdiğimizde bize 10-litrelik-sivi-yag-u3.html değerini geri göndersin ve biz de bunu link olarak verebilelim. Bunun için aşağıdaki benim hazırladığım fonksiyonu kullanabilirsiniz. 

 

', '');
$url = str_replace ($find, '', $url);
$url = preg_replace('/<(/{0,1})img(.*?)(/{0,1})>/', 'image', $url);
$find = array(' ', '"', '&', '&', 'rn', 'n', '/', '', '+', '<', '>');
$url = str_replace ($find, '-', $url);
$find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
$url = str_replace ($find, 'e', $url);
$find = array('í', 'ı', 'ì', 'î', 'ï', 'I', 'İ', 'Í', 'Ì', 'Î', 'Ï'); 
$url = str_replace ($find, 'i', $url);
$find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
$url = str_replace ($find, 'o', $url);
$find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
$url = str_replace ($find, 'a', $url);
$find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
$url = str_replace ($find, 'u', $url);
$find = array('ç', 'Ç');
$url = str_replace ($find, 'c', $url);
$find = array('ş', 'Ş');
$url = str_replace ($find, 's', $url);
$find = array('ğ', 'Ğ');
$url = str_replace ($find, 'g', $url);
$find = array('#');
$url = str_replace ($find, 'sharp', $url);
$find = array('/[^a-z0-9-<>]/', '/[-]+/', '/<[^>]*>/');
$repl = array('', '-', '');
$url = preg_replace ($find, $repl, $url);
$url = str_replace ('--', '-', $url);
return $url."-u".$id.".html";
}
?>

yukarıdaki fonksiyon içine aldığı değeri seoya uygun hale getirip id yi ekleyerek bize link oluşturmayı sağlıyor. Biz bu fonksiyonu aşağıdaki gibi kullanabiliriz.

 

<a href="<?php echo seoolustur($baslik,$id); ?>"><?php echo $baslik;?></a>

Burada $baslik değişkenimizin 10 Litrelik Sıvı Yağ ve id değişkenimizin 3 olduğunu varsayarsak sorgumuzun html çıktısı aşağıdaki gibi olacaktır.
 

<a href="10-litrelik-sivi-yag-u3.html">10 Litrelik Sıvı Yağ</a>

Bu linke tıkladığımız zaman ise arka planda sistem urunler.php?id=3 e gitmişiz gibi algılayıp bizleri bu sayfaya gönderecektir.

9154 Görüntülenme sayısı
  1. Yorum Icon
    1/23/2017 2:39:10 AM#1kadir

    Bişe anlaşılmıyor. Fonksiyon nereye eklenecek?

    Yorumu Cevapla
    • Yorum Icon
      1/23/2017 11:55:19 AMEnder Ariç

      Merhaba, fonksiyonu normal kodunuzun bulunduğu sayfada koddan önce yazarsınız sonra da link vereceğiniz yere yapıştırırsınız. Oldukça basit bir yöntem..

    • Yorum Icon
      1/23/2017 4:54:22 PMkadit

      normal kod sayfası ne? htacces mi? onlarca php dosyası var. tesekkurler

    • Yorum Icon
      1/23/2017 5:33:10 PMkadir

      Siz galiba sabit linklerden bahsediyonuz. Ben kalıcı bağlantıyı kastediyorum

    • Yorum Icon
      1/23/2017 5:47:42 PMEnder Ariç

      Merhaba tekrardan, şimdi durum şöyle örneğin bazı php sayfalarında veya oluşturmuş olduğunuz bir header.php sayfasında a href="urunler.php?id=4" linki var. yapacağınız tek şey o php sayfasında index.php yerine ?php echo seoolustur($baslik,$id); ? gibi fonksiyonu çağırmak. fonksiyonu fonksiyon.php diye bir sayfada oluşturup body etiketinden sonra include ile fonksiyonu dahil edebilirsiniz.

  2. Yorum Icon
    11/8/2016 11:17:34 PM#2sesli sohbet

    çok güzel bir konu tşk

    Yorumu Cevapla
  3. Yorum Icon
    11/2/2016 10:55:31 PM#3SESLİ CHAT

    eline sağlık güzel olmuş

    Yorumu Cevapla

BİR YORUM YAZIN

Bilgileriniz Güvende!E-Posta adresiniz ve diğer bilgileriniz kimseyle paylaşılmayacaktır.