PHP ile SEO Uyumlu link nasıl yapılır?

Soru & CevapPHP ile SEO Uyumlu link nasıl yapılır?
Nurçin Çan Staff asked 5 sene ago

Selam,

Yaptığım php scriptte seo ayarlamaları yapmaya çalışıyorum fakat bi noktada takıldım. Dosyaları oluşturduktan sonra .php uzantısıyla çalıştırıyorum. Bunları seo uyumlu şekile nasıl dönüştürürüm?

Örn: site.com/oku.php?haber=dolar-ne-kadar
yerine
site.com/dolar-ne-kadar

şeklinde nasıl yaparım?

Teşekkürler.

1 Cevap
Ercüment Çözer Staff answered 3 sene ago
Merhaba, Evet, bu işlem SEO açısından oldukça önemli ve içerik odaklı sistemlerde olmazsa olmazdır. Yapımı çok kolay ve orta seviye yazılım bilgisi gerektirir. İçeriği ID'e göre (sayısal) çektiğimizi farz edelim. İçerikte kullandığımız .php dosyası da .oku.php olsun. İlk önce .htaccess dosyası aracılığıyla site.com/oku.php?id=1881 ID değerine sahip dosyayı site.com/1881'e dönüştürelim.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z-_]+)(/?)$ oku.php?ID=$1 [QSA,L]
Bir .htaccess dosyanız yoksa, yukarıdaki içeriği oluşturun. Her şey bu kadar basit. Şimdi PHP ile otomatik seflink oluşturalım. Basit bir fonksiyon.

function permalink($string){
$find = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '+', '#');
$replace = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', 'plus', 'sharp');
$string = strtolower(str_replace($find, $replace, $string));
$string = pregreplace("@[^A-Za-z0-9-.+]@i", ' ', $string);
$string = trim(preg_replace('/\s+/', ' ', $string));
$string = str_replace(' ', '-', $string);
return $string;
}
Kullanımı da oldukça kolay. permalink('Uzun Haber Başlığı'); şeklinde oluşturduğunuz döngüyü uzun-haber-basligi ciktisi olarak ekrana yansıtır. Veritabanında oluşturduğunuz haber_sef sütununa, haberin seflink'ini kayıt ederseniz, veritabanından bunu sorgulayarak yukarıda ID ile yaptığımız çalışmanın SEO uyumlu halini yapabilirsiniz. Kolay gelsin.