Merhaba arkadaşlar bugunkü dersimizde Htaccess ile Seo Dostu Link Yapımı Değineceğiz. Bu link bizim ne işimize yarar diye merak ederseniz. Bu linkler site adresinde karmaşıklığı çözmektedir. Daha güzel linkler oluşturabiliriz. Örnek vericek olursak

Şimdi bu dersimizin adresini örnek alarak gösterelim.

Htaccess kullanılmassa Adresimiz :

https://pratikkodlar.com/ders.php?id=55.html

Htaccess kullanılırsa Adresimiz :

https://pratikkodlar.com/php-htaccess-ile-seo-link-yapimi.html

Aradaki fark baktığımız zaman birinci adresimizde her zaman sabit bir isim ve numara var. İkinci adresimizde ise dersimizin adı gözükmektedir. Bunun bize ne gibi faydası olur derseniz. Öncelikle link yapısını baktığımız zaman karmaşıklıkdan kurtulmuş oluyoruz ve google tarafından sevilen linklerdir. Yani google bu tarz linkleri sever ve google sitenize gelme olasılığı artmaktadır.

Şimdi bunu nasıl yapacağımıza bakalım

Öncelikle bize bir seo fonksiyonu gerekiyor yazacağımız başlığı bize seo url dönüştürmesi için. Aşağıda seo fonksiyonu bulabilirsiniz.

function seo_link($bas)
{
	$bas = str_replace(array(""","'"), NULL, $bas);
	$bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-');
	$yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ');
	$perma = strtolower(str_replace($bul, $yap, $bas));
	$perma = preg_replace("@[^A-Za-z0-9\-_]@i", ' ', $perma);
	$perma = trim(preg_replace('/\s+/',' ', $perma));
	$perma = str_replace(' ', '-', $perma);
	return $perma;
}

Daha sonra POST etmiş olduğumuz başlığı kullanarak fonksiyonumuza gönderiyoruz.

$baslik = "PHP Htaccess ile Seo Link Yapımı";
$SeoURL = seo_link($baslik);
// Sonuç : php-htaccess-ile-seo-link-yapimi

Fonksiyon kullanımımız bu şekilde benim size önerim bu URL adresini veritabanında sef,seo veya da istediğiniz bir alanda tutmanızdır bu şekilde daha kolay olacaktır. Şimdi veritabanızmıda tuttuğumuza varsayarak şimdi bunu nasıl kullanacağımıza bakalım.

<a href="php-htaccess-ile-seo-link-yapimi.html">PHP Htaccess ile Seo Link Yapımı</a>

Yazının üzerine geldiğinizde gösterilen adres : php-htaccess-ile-seo-link-yapimi.html şeklinde olacaktır. Sıra geldi htaccess kullanımına buraya dikkat edelim çünkü burada yapılabilecek ufak karakter hatalarında site bazen açılmayabiliyor o yüzden dikkatli yazalım.

Htaccess Dosyamız :

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+).html$ ders-oku.php?sef=$1 [L,NC]

Bu yazdığımızı inceleyecek olursak Öncelikle RewriteEngine yani htaccess kullanımını on yani başlattık. Daha sonra RewriteRule bir kural yazdık. ^([a-zA-Z0-9_-]+)-(.*?) burada büyük,küçük,rakam,- gelebilir dedik. sonrasında sayfamızın sonunun .html ile bittiğini belirtmiş olduk. Devamında ise ders-oku.php sayfamız bizim detay sayfamız oluyor. Tıklanacak her sayfada bu sayfaya yönlendireceğiz ve bu sayfa bizim detay sayfamız olucaktır. Devamında sef=$1 burada ise gönderdiğimiz değeri belirtiyoruz biz buraya bir değer gönderdik gönderdiğimiz değer php-htaccess-ile-seo-link-yapimi bu değeri get parametresi kullanarak gönderdik. Bir önceki dersimizde POST ve GET konusuna değinmiştik.

Adrese tıkladık ve sayfamız açıldı muhtemelen boş açılacaktır çünkü bir şey eklemedik sayfaya diğer sayfalarda olduğu gibi standart işlemlerini header,footer gibi kısımları sayfanızda gösterebilirsiniz fakat biz içeriği değiştirmek istiyoruz sadece bunun içinse gönderdiğimiz seo adresini alıp karşılaştırmak zorundayız.

$Seo = $_GET["sef"];  // Seo Adresimizi $Seo isimli değişkene atadık.

Daha sonra aldığımız değeri veritabanından sorgulatarak ilgili adresimize ait içeriğimizi sayfada gösterebiliriz. Bu şekilde url adresimiz daha temiz bir görünüm olacaktır.

Ayrıca şunu da belirtmek istiyorum. Bizim yaptığımız örnekde pratikkodlar.com/php-htaccess-ile-seo-link-yapimi.html olduğunu gösterdik fakat bazı adreslerde. pratikkodlar.com/ders/php-htaccess-ile-seo-link-yapimi.html olduğu vardır. Bunun için ise htaccess kodumuzda ve a tagında kullandığımız adresde ufak bir değişiklik yaparak bizde bu kullanımı sağlayabiliriz.

// A Tagımızı Adres kısmını şu şekilde değiştiriyoruz.

<a href="ders/<?php echo $Konu['seo'] ?>.html">PHP Htaccess ile Seo Link Yapımı</a>

// Htaccess Kodumuzu Şu Şekilde Değiştiriyoruz.

RewriteRule ^ders/([a-zA-Z0-9_-]+).html$ ders-oku.php?sef=$1 [L,NC]

Bu sayede pratikkodlar.com/ders/php-htaccess-ile-seo-link-yapimi.html şeklinde de görüntüleyebiliriz.

Kafanıza takılan yapamadığınız yer olursa iletişim sayfamızdan veya yorum kısmından bize ulaşabilirsiniz.

 

Yorumlar

nevzat 4 ay önce

PHP Htaccess ile Seo Link Yapımı satırında $Konu['seo'> yanlış yazılmış $Konu['seo'] oalrak düzeltin

Cevapla

Aygün Yıldız 3 ay önce

Teşekkür ederiz, Düzeltildi.

 

mesut 7 ay önce

Öncelikle teşekkürler Anlatımlarınıza göre $Seo = $_GET["seo"]; bu kısım $Seo = $_GET["sef"]; bu şekilde olması gerekmezmi ? ders-oku.php get ile alamıyorum sorun nedir ?

Cevapla

Aygün Yıldız 7 ay önce

Evet o şekilde olması gerekiyor belirtmiş olduğunuz satır düzeltildi. Bildiriminiz için teşekkürler.

 

Ümit Sancaklı 1 yıl önce

ben her şeyi yaptım sitenin adı başlığa uygun bir şekilde görünüyor ancak sayfa bulunamadı diyor başlık oldu ama yönlendirme olmadı sanırım bu neden kaynaklanıyor olabilir?

Cevapla

Aygün Yıldız 1 yıl önce

Linkler geliyorsa muhtemelen htaccess kısmında get kısmında bir hata yapmış olabilirsin. Htaccess deki gönderdiğin isim ile karşılaştırdığın isimleri kontrol et. Eğer sorun hala devam ederse iletişim sayfası üzerinden veya mail adresimize yapmış olduğun kodun resimlerini cekip atabilirsin daha iyi yardımcı olabiliriz.

 

Yorum Yaz

Bilgini paylaşarak insanlara faydalı olmak istiyorsan bizimle iletişime geç.