
Site içeriğinin seo url uyumlu olması arama motorları tarafından daha çabuk bulunmasını sağlar.
Konu başlığını url olacak şekilde ayarlamalıyız. Bunun için bir fonksiyon hazırlamamız gerekmekte.
function seo($baslik){ $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-'); $yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' '); $link = strtolower(str_replace($bul, $yap, $baslik)); $link = preg_replace("@[^A-Za-z0-9-_]@i", ' ', $link); $link = trim(preg_replace('/s+/',' ', $link)); $link = str_replace(' ', '-', $link); return $link; }
Bu fonksiyonu yazdık, şimdi veritabanımızda konuların bulunduğu tabloya bir de url isimli sütun açıyoruz, siteye konu eklenirken konu başlığını bu fonksiyondan geçirerek url isimli sütuna kayıt işlemini yapacağız.
$url = seo($konubasligi);
olacak şekilde url isimli bir değişkene atamasını yapıp bu değişkeni konu kaydı yapılırken url isimli sütuna kaydını yaparız. Site içinde bu konuya link vereceğimiz zaman veritabanından çektiğimiz url bilgisini konu linki olarak belirlemeliyiz.
echo '<a href="'.$id.'-'.$url.'">'.$baslik.'</a>';
Urlleri seo uyumlu yaptık, anlatım biraz karışık oldu sanırım, veritabanına bilgi kaydı ve bilgi okuma kısmını bildiğinizi varsayarak anlatıyorum bu konuyu, veritabanına bağlanıp bilgi okuma isimli konuya bakabilirsiniz.
Bunları yaptığınız halde sisteminiz çalışmayacaktır, konular blog.php?id=87 şeklinde gelmesi gerekiyor, fakat biz url kısmında değişiklik yaptık 87-php-seo-url-yapımı.mna olarak geliyor bunu blog.php bu haliyle anlayamaz ve konu açılmaz, bunun için Linux serverda .htaccess isminde bir dosya var, Linux sisteminin nimetlerinden biridir url yönlendirmeleri, şifreli dizin oluşturma, dizin listelemeyi engelleme gibi işlemlerin yapıldığı bir dosyadır. blog.php ile aynı dizinde .htaccess isimli bir dosya oluşturuyoruz, dosya varsa eğer düzenlemek için açalım, içine yazmamız gereken komutlar:
<ifmodule mod_rewrite.c=""> Options +Indexes +FollowSymLinks RewriteEngine on ReWriteRule ^([0-9]+)-([a-zA-Z0-9_-]+).mna$ blog.php?id=$1 [L,NC] </IfModule>
RewriteEngine On ile yönlendirmeyi açtık
ReWriteRule ile yönlendirme işlemini gerçekleştiriyoruz.
ReWriteRule ^([0-9]+)-([a-zA-Z0-9_-]+).mna$ blog.php?id=$1 [L,NC] : ([0-9]+) kısımda herhangibir sayı gelebileceğini tanımlamış olduk, ([a-zA-Z0-9_-]+) burada ise a dan z ye bütün karakterlerin ve sayıların gelebileceğini tanımladık konu idsi gelecek yani buraya, .mna kısmında sayfa uzantısını tanımladım, ^ ile $ işareti arasında yazıyoruz url de görünecek kısmı, ^ başlangıç $ bitişi temsil ediyor, buraya kadar urlin bu şekilde geleceğini tanımladık, eğer url böyle gelirse blog.php?id=$1 sayfasını göster $1 kısmı değişkendir herhangibir değer gelebilir şeklindedir, biz burada bir sayı göndereceğiz ([0-9]+) kısmında gelecek olan değer burası olacaktır, [L,NC] kısmında büyük küçük harf duyarlılığını kaldırmış olduk.
Şimdi adres satırından /87-php-seo-url-yapımı.mna şeklinde bir değer geldiğinde /blog.php?id=87 gösterilecektir.
0 Yorum