PHP ve htaccess kullanarak SEF link yapımı

Bu dersimde PHP ve htacces kullanarak sef link yapımını anlatıyorum.

Bu dersimde PHP ve htacces kullanarak sef link yapımını anlatıyorum.

Nedir bu sef olayı?
Biliyorsunuz, PHP sayfalarımızda get işlemlerimizde tarayıcı adres kısımları index.php?sayfa=servis&id=32 bu şekilde olur genelde linkler. İşte bunu arama motorlarının sevdiği şekilde yapmak, yani Ornek-Link-3.html şeklinde, hem de id veya get ile gönderilen bir metodu gizlemenin mantığını, yazdığım kodlar ile anlatmaya çalıştım.

PHP BÖLÜM


<?php 

//Özel karakterleri bulup yeni karakterler ile değiştiriyoruz

function replaceLink($link)

{

    
$replaceArr = array(

    
" " => "-"

    
"ü" => "u"

    
"Ü" => "U"

    
"ı" => "i"

    
"İ" => "I"

    
"ş" => "s"

    
"Ş" => "S"

    
"ğ" => "g"

    
"Ð" => "G",

    
"ö" => "o"

    
"Ö" => "O");

    

    foreach(
$replaceArr as $key => $value)

    {

        
$sarch[] = $key;

        
$replace[] = $value;

    }

    return 
str_replace($sarch$replace$link);

}



//Örnek veri linkleri olusturuyoruz

$arr = array("1" => "Örnek Link 1""2" => "Örnek Link 2""3" => "Örnek Link 3""4" => "Örnek Link 4");

foreach( 
$arr as $key => $value )

{

    echo 
'<a href="'.replaceLink("$value.html").'">Link '.$key.'</a><br />';

}



//Olusturular sef linkimizi ekrana yazdiriyoruz (test)

if( isset($_GET["sayfa"]) == "deneme" ){



    echo 
$_GET["id"];

PHP ?>



İşlevler

replaceLink isminde bir fonksiyon oluşturduk öncelikle adres çubuğunda linkler gözükürken. Ornek%Link%3.html bu şekilde boşluklarda yüzde(%) işareti, Türkçe karakter vb. gibi sorunları ortadan kaldırmak için bozuk karakterler ile düzgün karakterleri yer değiştirdik.

Daha sonra veritabanı bağlantısı yapmaya üşendim, o yüzden bir array oluşturup sanki veritabanından id çeker gibi değerler atadım ve o id'lere göre link oluşturup href kısımlarını htacces dosyasındaki yeni linkimize göre yukarıda oluşturduğum fonksiyonu kullanarak tanımladım.

Örnek: replaceLink("$value.html")

HTACCESS BÖLÜMÜ(.htaccess)

RewriteEngine on



RewriteRule ^(.*).html index.php?sayfa=servis&id=$1



İşlevler

Burada dikkat etmeniz gereken kısım ^(.*).html burasıdır. REGEXP öğrenirseniz bu karakterlerin ne işe yaradığını daha iyi anlarsınız. ^ mutlak değerini taşır (.*) bunun anlamı ise ne gelirse gelsin demek, yani .html'den önce ne gelirse gelsin. Daha sonra da .html yazıyoruz, isterseniz başka birşey de yazabilirsiniz.

Daha sonra boşluk bırakarak gerçek linkimizi yazıyoruz.

index.php?sayfa=servis&id=$1 sonundaki $1 ise ne gelirse gelsini temsil etmektedir. Eğer 2 tane olsaydı ikinciye $2 diyecektik.

Kolay gelsin.
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git