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 $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 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 $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
# 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?
<base href=”siteurl.com/” /> |
Ekleyiniz..
Not : Birden fazla rewriteruleniz varsa bazen çakışma yaşanabilir bunun için katmanlı bir yapı kullanabilirsiniz Örneğin :
kategori/php/sayfa2
yazilar/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