Bugün SEO’nun-arama motoru optimizasyonu- vazgeçilmezi olan arama motoru dostu link yapımını veya bunun da orjinal adıyla söylemek gerekirse SEF link yapımını göreceğiz. Şimdi makale, haber veya ürün bilgilerini tuttuğunu tablonuzda bir sütun daha oluşturun. Bu sütuna sef adını verin. Artık tablonuzda makale, haber veya ürün başlıklarınızın SEF halinide tutabileceğiniz bir sütununuz var. Bundan sonra yeni makale eklerken başlıklarınızın SEF halinide ekleyeceksiniz.
Bu makale ile neler öğreneceksiniz?
Girilen bir başlığı SEF Link’e çeviren PHP fonksiyonunu
.htaccess dosyasında RewriteEngine, RewriteBase ve RewriteRule
.htaccess dosyasının SEF link işlemlerinde nasıl kullanıldığını
deneme.com/deneme-baslik-1.html adresinin aslında deneme.com/makale_oku.php?sef=deneme-baslik&id=1 sayfası olduğunu ama bunu son kullanıcının asla anlamadığını ve bu işlemin nasıl yapılacağını öğreneceksiniz.
Şimdi sizlere PHP’de kullanacağımız fonksiyonu veriyorum:
/** * sef_link() * * Basliklari SEF linke çevirme fonksiyonu * * @param mixed $s * @return */ function sef_link($s){ $tr = array(‘ş’,‘Ş’,‘ı’,‘İ’,‘ğ’,‘Ğ’,‘ü’,‘Ü’,‘ö’,‘Ö’,‘ç’,‘Ç’); // Türkçe karakterlerin çevirlecegi karakterler $en = array(‘s’,‘s’,‘i’,‘i’,‘g’,‘g’,‘u’,‘u’,‘o’,‘o’,‘c’,‘c’); $s = str_replace($tr,$en,$s); $s = strtolower($s); $s = preg_replace(‘/&.+?;/’, ‘-‘, $s); $s = preg_replace(‘/[^%a-z0-9 _-]/’, ‘-‘, $s); $s = preg_replace(‘/s+/’, ‘-‘, $s); $s = preg_replace(‘|-+|’, ‘-‘, $s); $s = str_replace(“–“,“-“,$s); $s = trim($s, ‘-‘); return $s; }
Bu fonksiyon aracılığıyla başlıklarınızı sef hale getirebilirsiniz. Örnek vermek gerekirse “C++ Ders 1: Bir programın yapısı” başlığını “c-ders-1-bir-programin-yapisi” şekline çevirelim.
[code=php:24qhydys]// Sadece id, başlık ve sef’i insert ediyoruz $baslik=“C++ Ders 1: Bir programın yapısı”; $sef=sef_link($baslik);
mysql_query(“INSERT INTO makale(id, baslik, sef) VALUES(NULL, ‘$baslik’, ‘$sef’)”); // id sütunumuz auto-increment olduğu için NULL yazdık
Şimdi veritabanına giriş yaptık. Şimdi .htaccess dosyamızı oluşturalım. Htaccess dosyası sayesinde makale_oku.php diye oluşturacağımız dosyayı gizleyip onu SEF halde görmemizi sağlayacak. Bunun için .htaccess dosyasında RewriteEngine diye bir motor çalıştıracağız. Şimdi başlayalım hemen .htaccess dosyasına:
Şimdi .htaccess dosyamızda yazdıklarımızı açıklayalım. RewriteEngine’i On yaparak linklerimizin görünümünü değiştirmemizi sağlayan motoru aktifleştirdik. Daha sonra RewriteBase ile anadizinimizi belirledik. Son satırdaki RewriteRule ile yaptığımız işlem tam olarak şu:
– Eğer adres satırı ([a-zA-Z0-9-_]+)-([0-9]+).html yapısını sağlıyorsa bu sayfanın makale_oku.php dosyasını açmasını sağlıyor.
– Daha sonra $1 olarak ilk değişken kısmını alır. Bizim $1’e karşılık gelen kısmımız ([a-zA-Z0-9-_]+) kısmıdır. $2 kısmına denk gelen kısım ise ([0-9]+) kısmıdır.
Yani deneme.com/deneme-baslik-1.html sayfası aslında deneme.com/makale_oku.php?sef=deneme-baslik&id=1 sayfasını çalıştırıyor. Fakat son kullanıcılar bunu asla farkedemezler. Şimdi makale_oku.php sayfamızı düzenleyelim:
$vt_kontrol=mysql_fetch_assoc(mysql_query(“SELECT * FROM makale WHERE id=$id AND sef=’$sef'”));
if(!$vt_kontrol){ echo “404 – sayfa bulunamadı” ; } else{ echo $vt_kontrol[“baslik”]; }
Bu kadar basit arkadaşlar, sef link bu şekilde yapılmaktadır. Umarım işinize yarar, sorularınızı forumdan veya aşağıdaki yorum formu aracılığıyla iletebilirsiniz.
Kolay gelsin,
php seo, php sef link, htaccess rewrite, how do i make urls sef, php seo tricks, php seo ipuçları, php seo yapımı, php seo ipucu[code=php:24qhydys]/** * sef_link() * * Basliklari SEF linke çevirme fonksiyonu * * @param mixed $s * @return */ function sef_link($s){ $tr = array(‘ş’,‘Ş’,‘ı’,‘İ’,‘ğ’,‘Ğ’,‘ü’,‘Ü’,‘ö’,‘Ö’,‘ç’,‘Ç’); // Türkçe karakterlerin çevirlecegi karakterler $en = array(‘s’,‘s’,‘i’,‘i’,‘g’,‘g’,‘u’,‘u’,‘o’,‘o’,‘c’,‘c’); $s = str_replace($tr,$en,$s); $s = strtolower($s); $s = preg_replace(‘/&.+?;/’, ‘-‘, $s); $s = preg_replace(‘/[^%a-z0-9 _-]/’, ‘-‘, $s); $s = preg_replace(‘/s+/’, ‘-‘, $s); $s = preg_replace(‘|-+|’, ‘-‘, $s); $s = str_replace(“–“,“-“,$s); $s = trim($s, ‘-‘); return $s; }
Bu fonksiyon aracılığıyla başlıklarınızı sef hale getirebilirsiniz. Örnek vermek gerekirse “C++ Ders 1: Bir programın yapısı” başlığını “c-ders-1-bir-programin-yapisi” şekline çevirelim.
// Sadece id, başlık ve sef’i insert ediyoruz $baslik=“C++ Ders 1: Bir programın yapısı”; $sef=sef_link($baslik);
mysql_query(“INSERT INTO makale(id, baslik, sef) VALUES(NULL, ‘$baslik’, ‘$sef’)”); // id sütunumuz auto-increment olduğu için NULL yazdık
Şimdi veritabanına giriş yaptık. Şimdi .htaccess dosyamızı oluşturalım. Htaccess dosyası sayesinde makale_oku.php diye oluşturacağımız dosyayı gizleyip onu SEF halde görmemizi sağlayacak. Bunun için .htaccess dosyasında RewriteEngine diye bir motor çalıştıracağız. Şimdi başlayalım hemen .htaccess dosyasına:
Şimdi .htaccess dosyamızda yazdıklarımızı açıklayalım. RewriteEngine’i On yaparak linklerimizin görünümünü değiştirmemizi sağlayan motoru aktifleştirdik. Daha sonra RewriteBase ile anadizinimizi belirledik. Son satırdaki RewriteRule ile yaptığımız işlem tam olarak şu:
– Eğer adres satırı ([a-zA-Z0-9-_]+)-([0-9]+).html yapısını sağlıyorsa bu sayfanın makale_oku.php dosyasını açmasını sağlıyor.
– Daha sonra $1 olarak ilk değişken kısmını alır. Bizim $1’e karşılık gelen kısmımız ([a-zA-Z0-9-_]+) kısmıdır. $2 kısmına denk gelen kısım ise ([0-9]+) kısmıdır.
Yani deneme.com/deneme-baslik-1.html sayfası aslında deneme.com/makale_oku.php?sef=deneme-baslik&id=1 sayfasını çalıştırıyor. Fakat son kullanıcılar bunu asla farkedemezler. Şimdi makale_oku.php sayfamızı düzenleyelim:
$vt_kontrol=mysql_fetch_assoc(mysql_query(“SELECT * FROM makale WHERE id=$id AND sef=’$sef'”));
if(!$vt_kontrol){ echo “404 – sayfa bulunamadı” ; } else{ echo $vt_kontrol[“baslik”]; }
Bu kadar basit arkadaşlar, sef link bu şekilde yapılmaktadır. Umarım işinize yarar, sorularınızı forumdan veya aşağıdaki yorum formu aracılığıyla iletebilirsiniz.
Kolay gelsin,
mysql_query(“INSERT INTO makale(id, baslik, sef) VALUES(NULL, ‘$baslik’, ‘$sef’)”); // id sütunumuz auto-increment olduğu için NULL yazdık
Şimdi veritabanına giriş yaptık. Şimdi .htaccess dosyamızı oluşturalım. Htaccess dosyası sayesinde makale_oku.php diye oluşturacağımız dosyayı gizleyip onu SEF halde görmemizi sağlayacak. Bunun için .htaccess dosyasında RewriteEngine diye bir motor çalıştıracağız. Şimdi başlayalım hemen .htaccess dosyasına:
Şimdi .htaccess dosyamızda yazdıklarımızı açıklayalım. RewriteEngine’i On yaparak linklerimizin görünümünü değiştirmemizi sağlayan motoru aktifleştirdik. Daha sonra RewriteBase ile anadizinimizi belirledik. Son satırdaki RewriteRule ile yaptığımız işlem tam olarak şu:
– Eğer adres satırı ([a-zA-Z0-9-_]+)-([0-9]+).html yapısını sağlıyorsa bu sayfanın makale_oku.php dosyasını açmasını sağlıyor.
– Daha sonra $1 olarak ilk değişken kısmını alır. Bizim $1’e karşılık gelen kısmımız ([a-zA-Z0-9-_]+) kısmıdır. $2 kısmına denk gelen kısım ise ([0-9]+) kısmıdır.
Yani deneme.com/deneme-baslik-1.html sayfası aslında deneme.com/makale_oku.php?sef=deneme-baslik&id=1 sayfasını çalıştırıyor. Fakat son kullanıcılar bunu asla farkedemezler. Şimdi makale_oku.php sayfamızı düzenleyelim:
$vt_kontrol=mysql_fetch_assoc(mysql_query(“SELECT * FROM makale WHERE id=$id AND sef=’$sef'”));
if(!$vt_kontrol){ echo “404 – sayfa bulunamadı” ; } else{ echo $vt_kontrol[“baslik”]; }
Bu kadar basit arkadaşlar, sef link bu şekilde yapılmaktadır. Umarım işinize yarar, sorularınızı forumdan veya aşağıdaki yorum formu aracılığıyla iletebilirsiniz.
Kolay gelsin,
$vt_kontrol=mysql_fetch_assoc(mysql_query(“SELECT * FROM makale WHERE id=$id AND sef=’$sef'”));
if(!$vt_kontrol){ echo “404 – sayfa bulunamadı” ; } else{ echo $vt_kontrol[“baslik”]; }
Bu kadar basit arkadaşlar, sef link bu şekilde yapılmaktadır. Umarım işinize yarar, sorularınızı forumdan veya aşağıdaki yorum formu aracılığıyla iletebilirsiniz.
Kolay gelsin,
Bilgi için çok teşekkürler. Bu aralar kapsamlı bir proje oluşturmaya çalışıyorum(bitince bu çalışmayı paylaşımda da bulunacağım :) ), işime yarayacağına inanıyorum. bununla ilgili olarak şunu sormak istedim. Bu olayınyani seo kelime oluşturmanın CURL kütüphanesi ile bir ilgisi varmı? Birde localhostta .htaccess dosyaları yorumlanamıyor o yüzden böyle bir soru sordum bazı araştırmalarımda curl ile ilgili olduğu yazıyordu.
Localhost’ta htaccess’in çalışmamasının sebebi kesinlikle cURL ile alakalı değildir.. httpd.conf adlı bir dosya vardır apache’nin konfigürasyon dosyasıdır.. Bu dosyadan rewrite_module’ünü açıyorsun önce daha sonra da bir ayarlama kalıyordu onu hatırlamıyorum onu düzenliyorsun ;)
cURL’u gelişmiş bir file_get_contents() olarak düşünebilirsin ;)
Yazar
Yazılar
2 yanıt dizini görüntüleniyor
Bu konuyu yanıtlamak için giriş yapmış olmalısınız.