php-seo-uyumlu-link-yapimi

Php Seo Uyumlu Link Yapımı

Php Seo Uyumlu Link Yapımı

Merhaba arkadaşlar güzel bir konu ile daha sizlerleyiz.Bu dersimizde sizlerle php de en çok merak edilen konularından biri seo url nasıl yapılır onu işleyeceğiz.

Seo url yapmamız bizim açımızdan çok faydalıdır hem hızlı index almamızda hemde google dostu bir web sitemiz olması açısından hemde düzenli bir web sitemiz olması açısından çok yararlıdır.

Yani şöyle söyleyim linklerimiz neden index.php?haberid=5 yerine haberler/deneme-haber şeklinde görünmesin dimi. Hangisi daha anlaşılır geliyor tabiki seo yapısı 🙂

Peki nasıl yapılır bu kısmına geçelim bize yardımcı olacak bi arkadaş var ismi ” htaccess ” çok işimizi görcek hatta tamamını bu arkadaş yapacak 🙂

<?php

<?php 
$id = $_GET["id"];
$sorgu = mysql_query("SELECT * FROM yazilar Where id='$id'");
?>

Böyle bir yapımız var mesala bu yapımızda çalıştırdığımızda içeriklerimiz icerik.php?id=20 şeklinde görünecektir ama biz seo uyumlu olmasını istiyoruz..

Yapmamız Gerekenler

  • Yazılarımızın başlıklarını özel karakterlerden arındırarak url formatına uygun bir hale getirmek
  • .htaccess dosyamızda gerekli yönlendirmeleri yapmak
  • Yeni linklerimizi yeni seo yapımıza göre vermek

Gerekli seo fonksiyonumuz…

<?php

<?php  
function seo_yap($str){        
$preg = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '+', '#', '.');        
$match = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', 'plus', 'sharp', '');        
$perma = strtolower(str_replace($preg, $match, $str));        $perma = preg_replace("@[^A-Za-z0-9\-_\.\+]@i", ' ', $perma);        $perma = trim(preg_replace('/\s+/', ' ', $perma));        
$perma = str_replace(' ', '-', $perma);        
return $perma;    
}
?>

Tüm konularımızı bu fonksiyonu kullanarak örnegin veritabanımızda yazılar diye tablomuz var yapısı şöyle olacak yazi_baslik, yazi_seo_link işte bu seo link sutunumuza  seo_yap($baslik); şeklinde kayıt edicez..

Örnek vermek gerekirse:

<?php

<?php 
$baslik = yavuz selim kişisel sitesinde yardımcı olmaya çalışıyor 
echo seo_yap($baslik);//çıktısı şöyle olacak yavuz-selim-kisisel-sitesinde-yardimci-olmaya-calisiyor?>

Htaccess kısmı nasıl olacak onada bakalım

.htacces dosyamızı açıyoruz yok ise yeni bir .htacces olusturuyoruz php dosyalarımızın olduğu dizine
Dosyamızın içine girdikten sonra

<?php

# Yönlendirmeleri aktif eder
RewriteEngine on # Yeni bir yönlendirme kuralı ekliyoruz
RewriteRule ^([0-9a-zA-Z-_]+)/([0-9]+)$  posts.php?sef=$1&id=$2 [L,QSA]

posts.php = içerikleri id ye göre aldığımız php dosyamız
sef = seo link yapımızın geldiği ara değişken
id = posts.php de veri çektiğimiz id parametresi

([0-9a-zA-Z-_]+) = seo linkimiz bu kısma yerleşecek a-z arası 0-9 arası ve – karakterleri (sef)
([0-9]+) = post.php de kullandığımız id değeri buraya gelicek

[L] = url uyuştuğu an keser bunun anlamı şu örneğin siteurl.com/merhaba burada merhaba bizim url miz fakat [L] koymaz isek merhabaads gibi bir url yide aynı sayfaya yönlendirecek bazen hatalar olabilir o yüzden [L ] koyuoruz uyuştuğu an kesiyor devam ettirmiyor

[QSA] = Bu GET ile gösterilen verilerin aktif olmasını sağlar yani örnekte sef=$1&id=$2
Bazı configlerde koymaya gerek yokken bazı web server configlerinde koymayı gerektir biz öncelik olarak ekleyelim

Siteniz seo url yapısını kurduktan sonra tasarımı bozuk yada css dosyalarını çekemediği için tasarımında kaymalar olduysa head tagları arasına

<?php

<base href="siteurl.com/" />

ekleyiniz.

Not : Birden fazla rewriteruleniz varsa bazen çakışma yaşanabilir bunun için katmanlı bir yapı kullanabilirsiniz Örneğin :

<?php

kategori/php/sayfa2yazilar/cok-guzel-yazi/2  

Şeklinde kullanırsanız hiç bir sıkıntı çıkmadan seo yapınız oluşmuş olacaktır. Bundan sonra yapmamız gereken tüm linkleri seoya göre vermek olacaktır .İşlemlerimiz bukadar arkadaşlar umarım faydalı olmuştur yapamayan olursa yorum atabilir yardımcı olmaya çalışırım..

Sonraki konuda görüşmek üzere
Kanalıma abone olmayı unutmayın 🙂

Similar Posts

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir