.htaccess ile seo uyumlu link yapmak (sef nedir?)

yeniden merhabalar…  

“site.com/oku-2-sef-nedir” yazıldığında  “haber_detay.php?no=2&haber=sef-nedir” ve
“site.com/haberler” yazıldığında “site.com/haber.php”
şeklinde nasıl yönlendireceğimizi anlatmaya çalışacağım:

SEO

search engine optimization (arama motoru optimizasyonu) anlamına geliyor… yani yaptığımız sayfaların google da çıkmasını sağlayan sihirli kelime…

SEF

Search Engine Friendly: arama motoru dostu linkler anlamına geliyor…

şimdi bir haber.php yazdığımızda haberi ekrana basmak için

haber_detay.php?no=2

şeklinde link vermemiz gerekiyor… peki google 

haber.php?no=2 den ne anlasın?

google ın anlayacağı şekilde olması için bu linki şu şekilde düzenlemeliyiz

site.com/oku-2-sef-nedir

linklerimizi bu şekilde düzenlediğimizde google bizi daha başarılı indexleyecektir… ama bizim yazdığımız script 

site.com/oku-2-sef-nedir den ne anlasın?

bizim yazdığımız scriptte “oku-2-sef-nedir” yazıldığında “haber_detay.php?no=2&haber=sef-nedir” şeklinde yönlendirmemiz gerekiyor…

bunu aşağıdaki kodları “.htaccess” adıyla kaydederek yapabilirsiniz

RewriteRule ^oku-(.*)-(.*)$ haber_detay.php?no=$1&haber=$2  [L,NC] komutu ile adres satırından gelen “oku-2-sef-nedir” yazısını değişkenlere ayırıp haber_detay.php ye yönlendiriyoruz. bu komuta göre “$no” -> “2” ye “$haber”->”sef-nedir” değişkenlerine atanıyor… L ve NC ise başka bir komutun çalıştırılmamasını ve büyük-küçük harf ayrımı yapılmamasını sağlıyor. 

RewriteRule ^haberler haber.php [L,NC]

komutuda “site.com/haberler” yazıldığında “haber.php”ye yönlendiriyoruz.

Umarım faydalı olabilmişimdir…

Yazar: Mustafa Şadoğlu

Mustafa sitemizde 102 yazı eklemiş...

Share
  • Kenan Yıldırım

    Merhaba ; Bir proje üzerinde stajımı yapmaktayım.

    Projede sayfalara tıklandığında /?sayfa=1 şeklinde url adresinde çıkıyor

    bunu http://www.domain.com/anasayfa şeklinde yapamadım. Yardımcı olabilirmisiniz ?

    //sayfa.php

    $sayfa[1] = “anasayfa.php”;

    $sayfa[2] = “kayitol.php”;

    $sayfa[3] = “kayitkontrol.php”;

    $sayfa[4] = “kayitolgeri.php”;

    $sayfa[5] = “aktivasyon.php”;

    $sayfa[6] = “uyari.php”;

    //index.php

    include(“sayfa.php”);

    $sayfalar = (int) intval(@$_GET[“sayfa”]);

    //

    $sayfaSayisi = count($sayfa);

    if($sayfalar > $sayfaSayisi){

    $sayfalar = 1;

    }

    if(!$sayfalar){

    include($sayfa[1]);

    }else{

    include($sayfa[$sayfalar]);

    }

    //ANASAYFA

    linke basılınca : /?sayfa=1 // şeklinde url adresinde çıkıyor.

    //.htaccess

    Options +FollowSymLinks

    RewriteEngine On

    RewriteRule /([a-zA-Z0-9_-]+)$ index.php?sayfa=$1 [L]

    istenen : linkin http://www.domain.com/anasayfa olarak gözükmesi

    • merhaba. ben o tarzda kullanma ihtiyacı duymadığım için çözümünü bilemiyorum. ancak wordpress tam da istediğiniz gibi htaccess i düzenliyor… istediğiniz kod orada mevcut… ancak onun da blog tarzında olduğunu hatırlatmakta fayda var…

  • Umut

    Merhaba benim bir sorum olucak.

    http://www.site.com/il.php?id=2 yi htaccess ile http://www.site.com/il/istanbul_2.html e çevirdim. Fakat öteki yapıda get ile idyi alıp ilin ilçeleri için ilce.php de sorgu yapabiliyordum. Fakat bu yapıda bunu nasıl yapabilirim?

    İnternette bu konu hakkında baya araştırma yaptım ama bulamadım yardımcı olursanız sevinirim.
    İyi çalışmalar.

    • RewriteRule ^oku-(.*)-(.*)$ haber_detay.php?no=$1&haber=$2 [L,NC]
      RewriteRule ^oku-(.*)-(.*)$ haber_detay.php?no=$1&haber=$2 [L,NC] komutu ile adres satırından gelen “oku-2-sef-nedir” yazısını değişkenlere ayırıp haber_detay.php ye yönlendiriyoruz. bu komuta göre “$no” -> “2″ ye “$haber”->”sef-nedir” değişkenlerine atanıyor…

      bu şekilde istediğiniz kadar değişken sayısını arttırabilirsiniz…
      bu arada neden .html bitirmeye çalışıyorsunuz ki?
      mevcut çalışan linkinizin sonuna ?ilce=kadikoy gibi değişken yine gönderebilirsiniz..

  • merhaba hocam faydalı oldu ama ben boyle degıl /play.php?play=1 örnek ben bunu play/baslik nasıl yaparım ama baslık kucuk kucuk sonra özel karekter fln var yardımcı olursanız sevınırım

    • @cengiz akcan
      /play.php?play=1 ile /baslik farklı şeyler, birinde text kullanmışsın ama diğerinde muhtemelen index anahtarı kullanmışsın,
      ille de yapayım dersen bu rewrite kuralı işini görecektir

      RewriteEngine On
      RewriteRule ^([^/]*)$ /play.php?play=$1 [L]

  • vallaa anladım desem yalan olur

  • Burada eksik bir anlatım var. php sayfada o konuya nasıl link vereceğimizi söylememişsiniz. herşey tamam bir tek o eksik.. birde sanırım mysqle seolink diye kayıt yapmamız lazım…

  • herkes anladı bir ben alamadım neyse teşkrler

  • Nedim

    teşekkürler anlatım için

  • çok yararlı bir anlatım olmuş

  • Pingback: Okul Sayfası: Kolay, Hızlı, Google Dostu « Okul Sayfası: Kolay, Hızlı, Google Dostu()

  • tşk

  • Teşekkür ederim