• 27-06-2008, 14:03:05
    #1
    Üyeliği durduruldu
    Merhaba, ...
    php scripte sef url yapmaya çalışıyorum ama bir türlü yapamadım.



    index.php dosyasının içerisindeki kodlar;


    <?
    # Ana Sayfada 5 tane konu başlığı ve önyazı listeleniyor...
    $devaminioku= "Devamını oku...";
    $sql = mysql_query ("SELECT * FROM yazilar ORDER BY id DESC LIMIT 5"); 
    while($goster=mysql_fetch_array($sql)){
    echo "<h5><p><a href=\"makaleoku.php?id=".$goster['id']."\">".$goster['baslik']."</a></h5>";
    echo "<p>".$goster['onyazi']."<br>";
    echo "<h6><p><a href=\"makaleoku.php?id=".$goster['id']."\">".$devaminioku."</a></h6>";
    echo "<br>";
     }  
    ?>



    makaleoku.php dosyasındaki kodlar;



    <?
    include("panel/baglan.php");
    $id=$_GET["id"];
    $makalecek=mysql_fetch_array(mysql_query("select * from yazilar where id='$id'"));
    $baslik=$makalecek['baslik'];
    $onyazi=$makalecek['onyazi'];
    $title=$makalecek['title'];
    $description=$makalecek['description'];
    $keyword=$makalecek['keyword'];
    $kaynak=$makalecek['kaynak'];
    $kaynak_link=$makalecek['kaynak_link'];
    $yayimci=$makalecek['yayimci'];
    $makale=$makalecek['yazi_metni'];
    $hit=$makalecek['hit'];
    $tarih=$makalecek['tarih'];
    $katid=$makalecek['katid'];
    
    $hitguncelle=mysql_query("update yazilar SET hit=hit+1 where id='$id'");
    
    $katcek=mysql_fetch_array(mysql_query("select * from kategori where id='$katid'"));
    $katadi=$katcek['katadi'];
    echo $baslik; 
    echo $makale; 
    ?>

    bu kodlara göre .htaccess nasıl hazırlanır?
    bir arkadaşım hazırladı fakat çalıştıramadım.
  • 27-06-2008, 14:10:02
    #2
    Üyeliği durduruldu
    sef yaptığın kısım nerde? id alanında sayılar yok mu?
  • 27-06-2008, 14:11:35
    #3
    Üyeliği durduruldu
    MC_delta_T adlı üyeden alıntı: mesajı görüntüle
    sef yaptığın kısım nerde? id alanında sayılar yok mu?
    bu şekilde çalıştırıyorum ben scripti.
    yani sef url yaparak yazmıştım onları sildim.
    şimdi sırf php olarak yazdım kodları.
    sef url yi sıfırdan hazırlayalım dedim
  • 27-06-2008, 15:28:42
    #4
    Üyeliği durduruldu
    türkçe karakterleri çevirdiğin ayrıntılı fonksiyon olduğunu varsayarak
    function tr($url)
        {
        $turkce=array('ı','ö','ü','ğ','ş',' ');
        $yeni=array('i','o','u','g','s','-');
        $url=str_replace($turkce,$yeni,$url);
        return $url;
        }
    
    function seflink($id,$baslik,$sef)
        {
        switch($sef)
            {
            case 1: $sefbaslik=tr($baslik); $seflink='makale/'.$id.'/'.$sefbaslik; break;
            default: $seflink='makaleoku.php?id='.$id; break;
            }
        return $seflink;
        }
    uygularken
    <?
    # Ana Sayfada 5 tane konu başlığı ve önyazı listeleniyor...
    $devaminioku= "Devamını oku...";
    $sql = mysql_query ("SELECT * FROM yazilar ORDER BY id DESC LIMIT 5"); 
    while($goster=mysql_fetch_array($sql)){
    echo "<h5><p><a href=\"".seflink($goster['id'],$goster['baslik'],1)."\">".$goster['baslik']."</a></h5>";
    echo "<p>".$goster['onyazi']."<br>";
    echo "<h6><p><a href=\"".seflink($goster['id'],$goster['baslik'],1)."\">".$devaminioku."</a></h6>";
    echo "<br>";
     }  
    ?>
    .htaccess

    RewriteRule ^makale/([0-9]+)/([_A-Za-z0-9-]+)?$ makaleoku.php?id=$1 [L]

    RewriteRule ^makale/([0-9]+)/(.*)?$ makaleoku.php?id=$1 [L]

    ikisinden birini eklersen olur.

    ilki eklersen fonksiyondaki "$seflink='makale/'.$id.'/'.$sefbaslik;" urlencode($sefbaslik) olarak değiştir.

    kolay gelsin

    +kodları kontrol et yazım yanlışları olabilir.
  • 28-06-2008, 11:22:23
    #5
    Üyeliği durduruldu
    sweatcell, yazdığın kodlar çalışıyor fakat makaleoku.php sayfasında asıl yazı gelmiyor.
    404 hata sayfası açılıyor.
    www.delphp.info/seo_index.php burada göstereyim tekrar bakarsan sevinirim.
    ikinci verdiğin örneği de yaptım fakat hata aldım.
  • 28-06-2008, 21:39:39
    #6
    Üyeliği durduruldu
    Cute News v1.4.5 Installer
    böyle klasör var sitende büyük ihtimal ondan.

    fonksiyondaki ve .htaccess 'deki "makale" kısmını "makaleler" olarak değiştirip denersen düzelicektir veya Cute News v1.4.5 Installer makale klasörünü kaldır.
  • 29-06-2008, 18:27:22
    #7
    Üyeliği durduruldu
    sweatcell adlı üyeden alıntı: mesajı görüntüle
    Cute News v1.4.5 Installer
    böyle klasör var sitende büyük ihtimal ondan.
    fonksiyondaki ve .htaccess 'deki "makale" kısmını "makaleler" olarak değiştirip denersen düzelicektir veya Cute News v1.4.5 Installer makale klasörünü kaldır.
    tamam dediğin gibi deneyelim bakalım : )
  • 29-06-2008, 23:41:21
    #8
    Üyeliği durduruldu
    malesef olmadı : )
  • 30-06-2008, 00:10:06
    #9
    .htaccess dosyasını aşağıdaki gibi yap
    RewriteEngine on
    RewriteRule ^makale/([0-9]+)/([_A-Za-z0-9-]+)$ makaleoku.php?id=$1             [L]
    Yaptıktan sonra örnek olarak 1 nolu makale için
    http://siteadresin.com/makale/1/deneme
    şeklinde browser'a yaz bakalım olacakmı