folder Tahribat.com Forumları
linefolder Webmaster ve Yazılım Geliştiriciler
linefolder Hadi Seo Yapalım ( .Htaccess Olmadan Php İle )



Hadi Seo Yapalım ( .Htaccess Olmadan Php İle )

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    Öncelikle arkadaşlar explode, switch vs.. gibi kavramların ne olduğuna bakalım ; www.php.net

    .htaccess ile yapılabiliyor.Fakat ben beceremedim.Bu yüzden kendi yöntemimle yaptım.Deneye deney bu şekilde birşey oluşturdum.İsterseniz .htaccess deneyebilirsiniz.

    ------

    Seo nedir ? site.com/yazi/bişeyler vs.. dir.Bu google da avantajdır.Aslında seo (benim yaptığım yöntemle) sadece "aldatma sanatı"..(ne demek istediğimi ileride anlatacağım).Yalnız bizim seolar biraz farklı.Nasıl farklı ? site.com/yazi yerine site.com/?yazi olacak.Yani biz index.php de çalıştırıyor olacağız.Şimdi ufak ufak başlayalım ;

    $sor = explode('?', $_SERVER['REQUEST_URI']);
    $seo = explode('/',$sor[1]);

    bunu ekledik.bu ne yaptı ??? $_SERVER['REQUEST_URI'] ile urlyi olduğu gibi çektik.Daha sonra ? işaretine göre böldük.
    http://www.site.com/?yazi/35/linuxa giriş

    Olduğunu var sayalım.Burda $sor iki değere atandı ( array ile) => $sor = explode('?', $_SERVER['REQUEST_URI']);

    $sor[0] = 'http://www.site.com/';
    $sor[1] = 'yazi/35/linuxa giriş';

    Şimdi birşeyler elde etmeye başladık.Buradan sonra $sor[1] kısmınıda / işaretine göre bölelim; => $seo = explode('/',$sor[1]);

    $seo[0] = 'yazi';
    $seo[1] = '35';
    $seo[2] = 'linuxa giriş';//bu linuxa giriş sadece google vs.. içindi.Bununla bi işimiz olmayacak.

    Şimdi gelelim sayfalandırmaya.Ben herşeyi index.php sayfasında hallettim extradan bir sayfaya gerek duymadım.Şimdi site.com/?yazi  kısmında yazi, /dokuman, /hakkimda vs.. olabilir.Bu tamamen linklendirirken sizin seçeneğinize kalmış.Fakat yukarıdaki mantığa göre seo[0] bizim temel kısmımız olacak.Şimdi sizlere yazi, hakkımızda ve anasayfadan oluşan bir örnek yapalım.Bunları switch ile bağlayacağız.

    switch($seo[0]){
    case 'hakkimizda':
    echo 'hakkimizda verecek.';
    break;
    case 'yazi':
    echo 'Burada ileride anlatacağım yazı kımını halledebiliriz.';
    break;
    default:
    echo 'burada ana gösterim olur ?yazi ve ?hakkimiz haric hepsi buraya yonlenir';
    break;
    }

    -----

    Şimdi bunlara link verelim:
    Hakkımızda
    yazilar
    anasayfa // göreceğiniz gibi burda ?asdfyazsakta anasayfaya atar.Amacımız ilk girişte bunu göstermek zaten.Gördüğünüz gibi buraya kadar birşey yok.Peki ya linkleri çekmede ???

    Birde uyarı yapayım ben seo yu linke göre aldım yani ?yazi/35/linux dökümanları dediğimiz zaman önemli kısım yazi ve sonraında gelen sayı.O id yi gösteriyor.Amacımız zaten url ile içeriği bağdaştırmak değil mi ? Onuda yaptık linux dökümanları yazdırarak fakat problem yok.

    Şimdi gelelim yazıları listeleme ve göstermeye.Bir blog gibi düşündüm bu yüzden anasayfada ilk 10 yazıyı listelediğimizi düşünüyorum.Onun üstünden örneklendiricem.Fakat siz switch te kategoti falan eklersiniz.Mantık aynı mantık zaten.

    -----

    Veritabanımızda blog içinde kategori ve yazilar kısmının olduğunu varsayıyorum.Öncelikle bunları listeleyip yazi kımına link verelim ;

    $sorgu=mysql_query('SELECT * FROM yazilar order by id desc limit 10') or die('sorguda problem var');
    while ($oku=mysql_fetch_assoc($sorgu)){
    echo '''
    ';
    }

    Gördüğünüz gibi yukarıda link verirken ?yazi/id/başlık olarak verdik.Başık tamamen google ve arama motorlarına yönelik.Şimdi bunu switch e bağladığımız yazı kısmından çekerlim;

    Unutmamamız gereken nokta bizim herşeyimiz $ceo[] daki []  parentezlerinin içinde olan rakamlar ?yazi 0 oluyor, sonra gelen 1, sonra 2, sorna 3..Yani istediğiniz gibi değişiklikler yapabilirsiniz.Evet bu mantıkla id miz $seo[1] olacak.O zaman ;

    case 'yazi':
    if(!is_numeric($seo[1])){echo 'hop birader mıncıklama idyi..';}else{ // ?yazi/numara yerine başka birşey yazarsa kotnrol yada sql inj
      $sorgu=mysql_query('SELECT * FROM yazilar where id='.$seo[1]) or die('sorguda problem var');
      if(mysql_num_rows($sorgu)==0){echo 'bu kategoride bir yazı yok';
      }else{
      $oku=mysql_fetch_assoc($sorgu);
      echo $oku['yazi'];
      }
    }
    break;

    ------

    Yukarıda echo $oku['yazi'] kısmını divlerle, tablellar ile istediğiniz gibi süsleyebilirsiniz.Şimdi buraya kadar herşey güzel fakat etiketlerken ben bire bir dbden çektirmiştim.Tag kısımlarında yani.Atıyorum linux mint diye bir tagımız var.Şimdi bunu direkt çektirmek istiyoruz.Link verirken şöyle verdik ;

    Linux Mint // tabi burada href="?etiket/'.$oku['etiket'].'" demiştim.Neyse; nasıl bir url olur bu ? şöyle => www.site.com/?etiket/linux mint

    Fakat burda bir problem var.Çünkü url olunca boşluk %20 gözükür.Diğer karakterler ( Türkçe karakterler )%li gözükür.O yüzden bir php nimeti olan urldecode kullanacağız.Nasıl kullanacağız bunu ?

    $eti =  urldecode($seo[1]); // gördüğünüz gibi seodan alınan bilgiyi %20 değilde boşluk , diğerleirnide normale çevirir.şimdi napacağız etiketlerde ?

    $eticek=mysql_query("SELECT * FROM yazilar where etiket like '%$eti%' order by id desc") or die('etiket sorgusunda problem var');
    if(mysql_num_rows($eticek)!=0){ // burada ==0 ise yani kayıt yoksa falan filan gibi değerlendirmeleri es geçiyorum
      while ($etioku=mysql_fetch_assoc($eticek)){
      echo '-->'.$etioku['baslik'].'
    ';
      }
    }

    Gördüğünüz gibi etiket probleminide ordatan kaldırdık.Ben bu yöntemi kullanıyorum basit geldi, birazcıkta uğraşmayı seviyorum.Hem kendim yazdım :D isteyen olursa ufak bir örnek yapabilirim.Fakat dökümanı açık yazdığımı sanıyorum.

    Bu arada sql sorgularında falan problem olur.Yani bi yerde yazilar yazarken diğer yerde dokuman, yazi yazmış olabilirim kontrol ettim ama söyliyeyim.

    denemek için (server problemli kasma, yavaşlama falan olabilir) : http:/www.tarcan.tur0.org/blog

    .htaccess varken neden buna gerek yok diyeni falan şişlerim :D ben böyle istedim bunu yaptım !

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    burası benim.Birde url yanlış

    http://www.tarcan.tur0.org/blog 

    olacak

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Amd-x
    Amd-x's avatar
    Kayıt Tarihi: 29/Eylül/2009
    Erkek
    harika döküman hoca :) TBT ailesinin iyi yararlanması lazım klavyene bilgine sağLık
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Realist
    Realist's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    güzel doc.

    hocam boşluklarıda -,_ falan yap istersen.

    ama çok uğraşmıssın :D 

    .htac den daha kolay 


    ..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    Realist bunu yazdı:
    -----------------------------

    güzel doc.

    hocam boşluklarıda -,_ falan yap istersen.

    ama çok uğraşmıssın :D 

    .htac den daha kolay 


    -----------------------------

    hocam boşluk falan brişey ifade etmez.Fakat Türkçe karakterleri falan engellemek isteyen olursa ;

    function duz($text){
    $bul = array('Ç','Ğ','İ','Ö','Ş','Ü','I','U',' ');
    $cevir = array('ç','ğ','i','ö','ş','ü','ı','u','-');
    $text = str_replace($bul, $cevir, strtolower($text));
    return $text;
    }

    ------

    Bunu nasıl kullanacağız ? Şöyle ; 

     duz($oku['baslik'])

    yaparsanız düzelir.Başka şeyleri çevirmek istiyorsanız bulun sonuna virgül koyup iki tek tırnakarasına ekleyebilirler => ,'A'
    daha sonra cevirin sonuna değerin en olacağını girerler => ,'a'

    burada A a ya dönüşür.Fakat strolower ile zaten bunu yaptık.

    ------

    Öte yandan kendi projelerimle uğraşmayı seviyorum :)

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hackworm
    hackworm's avatar
    Kayıt Tarihi: 09/Ekim/2009
    Erkek
    zumsuk biraz tasarım çek sitene kabak gibi kalmış :| php yetmemiş yani :|
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MikRoBiT
    MikRoBiT's avatar
    Kayıt Tarihi: 11/Ekim/2007
    Erkek

    hackworm bunu yazdı:
    -----------------------------
    zumsuk biraz tasarım çek sitene kabak gibi kalmış :| php yetmemiş yani :|
    -----------------------------

     

    İyi olur :)


    Ban servis - Instagram Facebook WhatsApp Snapchat
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    hackworm bunu yazdı:
    -----------------------------
    zumsuk biraz tasarım çek sitene kabak gibi kalmış :| php yetmemiş yani :|
    -----------------------------

    hocam tasarım açısından problem var.Bu günlere getirene kadar canım çıktı ;

    http://photos-a.ak.fbcdn.net/hphotos-ak-snc3/hs092.snc3/15938_162216528835_111669753835_2620723_7203428_n.jpg

    önceki hali böyleydi.Şimdi dua etmek lazım...

    Tasarım zamanla gelişir.Benim için önemli olan içerik.Yavaş yavaş onu geliştiriyorum.Birazcık daha güzel birşey olsun kodları dağıtıcam zaten sağda solda..Daha güzel olacak.

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Holyzone
    Holyzone's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 13/Ekim/2008
    Erkek

    ellerine sağlık hoca ^^

    edit: aklıma gelmişken, wikimedia seo mantığı bu değil mi ?

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    hocam onlar access ile.Tek farkı soru işareti yok :D yani görünüşte o ...

    Onlarda şöyle çalışıyor ; .htaccess dosyası ile diyorsun ki yazılan urlleri

    index.php?sayfa=

    olarak al.Yani site.com/hakkinda dediğinde index.php?sayfa=hakkinda oluyor.

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    suKo
    suKo's avatar
    Kayıt Tarihi: 12/Mart/2008
    Erkek
    Programlardan dillerden gram anlamam

    ama zumsuk hoca seni içten tebrik ettim ilgisiz olsamda göze çarpıyo bu hevesin uğraşın çaban:)

    Kafam oldu galiba:|
Toplam Hit: 3304 Toplam Mesaj: 16