Merhaba arkadaşlar.PHP için basit ama etkili seo url yapımından bahsediceğim.
function seo_url($s) {
$tr = array('ş','Ş','ı','I','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç','(',')','/',':',',');
$eng = array('s','s','i','i','i','g','g','u','u','o','o','c','c','','','-','-','');
$s = str_replace($tr,$eng,$s);
$s = strtolower($s);
$s = preg_replace('/&.+?;/', '', $s);
$s = preg_replace('/\s+/', '-', $s);
$s = preg_replace('|-+|', '-', $s);
$s = preg_replace('/#/', '', $s);
$s = str_replace('.', '', $s);
$s = trim($s, '-');
return $s;
}
Yukarıdaki fonksiyon ile Türkçe karakterleri normal karakterlere , özel karakterleri de url formatında çevirmektedir. Örneğin;
$urladresi= "php dersi öğreniyorum";
echo seo_url($urladresi);
Çıktısı: php-dersi-ogreniyorum
Fonksiyonlarımızı yazdık şimdi sıra yönlendirme yapmakta.Bunun içinde .htacces dosyamızı açıyoruz.
# Yönlendirmeleri aktif eder
RewriteEngine on
# Yeni bir yönlendirme kuralı ekliyoruz
RewriteRule ^([0-9a-zA-Z-_]+)/([0-9]+)$ phpsayfam.php?veri1=$1&veri2=$2 [L,QSA]
Kod açıklamaları;
phpsayfam.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 = phpsayfam.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