13 Mart 2013 Çarşamba

Php Sef Link Nasıl Yapılır ?


Bu yazımda biraz PHP’deki SEF link olayından bahsetmek istiyorum. Script kodlarken artık önemli bir detay olarak görülüyor SEF link yapısı. Peki nedir bu SEF link dediğimiz olay. Açılımı Search Engine Friendly olan SEF, SEO dostu bir scriptte bulunması gereken olmazsa olmaz yapıdır. Yani link yapımızı arama motoru dostu bir yapıya çevirmektir. Arama motorları tarafından daha anlamlı olmasıdır linklerin.
Normalde bir script yazdığınızda ‘detay.php?id=1′ şeklinde bir yapıya sahip olur. Bunun google için hiçbir anlamı yoktur açıkcası. Biz bu yapıyı ‘haber-basligi.html’ şeklinde kelimelerden oluşan bir yapı ile listeleteceğiz. Bu şekilde her yazımızın adı urlde geçmiş olacak ve ilk durumdan daha anlamlı bir hale gelecektir linklerimiz. Bunun için öncelikle .htaccess dosyası oluşturmamız gerekiyor. Boş bir text dosyasına linklerimizi nasıl kullanacağımızı belirten kodları yazıyoruz ve .htaccess olarak kaydederek sitemizin bulunduğu dizine atıyoruz.
Kullanabileceğiniz örnek kod;

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^haber-(.*)-(.*).html$ detay.php?id=$1&baslik=$2 [L,NC]
Bu şekilde kullandığımızda linklerimiz haber-1-haber-baslik.html şeklinde olacaktır. Siz isterseniz .htaccess dosyanızda yapacağınız değişikliklerle bu yapıyı değiştirebilirsiniz. Bu işlemden sonra artık link yapısını ayarlamaya geldi sıra.
Normalde;
<a href=”detay.php?id=<?php echo $row_Recordset1['id']; ?>”><?php echo $row_Recordset1['baslik']; ?></a>
şeklinde olan yapıyı
<a href=”haber-<?php echo $row_Recordset1['id']; ?>-<?php echo $row_Recordset1['baslik']; ?>.html”><?php echo $row_Recordset1['baslik']; ?></a>
şekline dönüştürüyoruz.
Artık işlem tamam. Şu anda listeleme yaptığınızda linklerimiz detay.php?id= şeklinde değil de haber-3-baslik.html şeklinde olacaktır. Kalan son bir eksik yanı var şu an. Başlık eğer Türkçe karakter ya da boşluk karakteri içeriyorsa bu urlde kullanıldığında pek sağlıklı olmayacaktır. Bu yüzden bu boşlukları, sembolleri, Türkçe karakterleri bir fonksiyonla uygun bir hale getireceğiz.
function turkceyap($deger) {
$turkce=array(“ş”, “Ş”, “ı”, “(“, “)”, “‘”, “ü”, “Ü”, “ö”, “Ö”, “ç”, “Ç”, ” “, “/”, “*”, “?”, “ş”, “Ş”, “ı”, “ğ”, “Ğ”, “İ”, “ö”, “Ö”, “Ç”, “ç”, “ü”, “Ü”);
$duzgun=array(“s”, “S”, “i”, “”, “”, “”, “u”, “U”, “o”, “O”, “c”, “C”, “-”, “-”, “-”, “”, “s”, “S”, “i”, “g”, “G”, “I”, “o”, “O”, “C”, “c”, “u”, “U”);
$deger=str_replace($turkce,$duzgun,$deger);
$deger = preg_replace(“@[^A-Za-z0-9-_]+@i”,”",$deger);
return $deger;
}

Fonksiyonumuzu tamamladıktan sonra bu fonksiyonumuzu echo kısmında kullanıyoruz. Bunu da şu şekilde basitce yapabiliriz.
<?php $yenibaslik = turkceyap($row_Recordset1['baslik']); echo $yenibaslik; ?>
Evet artık bu işlem de tamam. Linklerimizde ne Türkçe karakter ne de boşluk veya özel karakterler olacaktır. Ve artık SEO dostu SEF linklere sahibiz…

Hiç yorum yok:

Yorum Gönder