• 20-05-2013, 15:18:19
    #1
    Arkadaşlar php ile oluşturduğum siteme Permalink (url rewrite) yaptırmak istiyorum.

    İndex.php sayfamda plaka kodları şeklinde butonlar var. Bu butonlara sehirler.php?ref=1 şeklinde manuel olarak link verdim.

    Sehirler.php ye girince de ilanlar listeleniyor. İlanlar da sabit_ilanlar.php?deger=1115541 şeklinde ilanın id sine göre linkleniyor. Ancak bu ilanların linkleri aşağıdaki kod ile geliyor.

    <a href='sabit_ilanlar.php?deger={$row['idsabit_ilanlar']}'>{$row['ilan_adi']}</a>

    Ben bu sitede index.php deki ve sehirler.php deki linklere nasıl url rewrite yapabilirim? Bir çok makale inceledim fakat koyu olarak verdiğim link verme olayını anlayamadım.

    Bilgili arkadaşlar ayrıntılı olarak kodlarla açıklarsa çok memnun olurum.
  • 20-05-2013, 15:42:29
    #2
    Üyeliği durduruldu
    Anasayfam adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar php ile oluşturduğum siteme Permalink (url rewrite) yaptırmak istiyorum.

    İndex.php sayfamda plaka kodları şeklinde butonlar var. Bu butonlara sehirler.php?ref=1 şeklinde manuel olarak link verdim.

    Sehirler.php ye girince de ilanlar listeleniyor. İlanlar da sabit_ilanlar.php?deger=1115541 şeklinde ilanın id sine göre linkleniyor. Ancak bu ilanların linkleri aşağıdaki kod ile geliyor.

    <a href='sabit_ilanlar.php?deger={$row['idsabit_ilanlar']}'>{$row['ilan_adi']}</a>

    Ben bu sitede index.php deki ve sehirler.php deki linklere nasıl url rewrite yapabilirim? Bir çok makale inceledim fakat koyu olarak verdiğim link verme olayını anlayamadım.

    Bilgili arkadaşlar ayrıntılı olarak kodlarla açıklarsa çok memnun olurum.
    Hocam sanırım anladığım kadarıyla sen linkleri GET ile gelen değişkenlerden ? kurtarmak niyetindesin.

    Hemen bir .htaccess dosyası oluşturup;

    <IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    rewritecond %{http_host} ^siteadi.com [nc]
    rewriterule ^(.*)$ http://www.siteadi.com/$1 [r=301,nc]
    
    
    RewriteRule ^sehirler/(.*)/ /sehirler.php?ref=$1 [L,NC]
    
    RewriteRule ^ilan-detay/(.*)/ /sabit_ilanlar.php?deger=$1 [L,NC]
    
    </IfModule>
    yazıyoruz. Böylelikle, bundan sonra değişkenleri sehirler.php?ref=1 yerine, sehirler/1/ olarak çıkıyor. Daha sonra manuel verdiğin linkleri de aynı şekilde düzenlemen gerekecek.

    Sabit ilanlarda;

    sabit_ilanlar.php?deger=1234 yerine,

    ilan-detay/1234/ olarak görünecektir.

    bunuda ; <a href='http://siteadi.com/ilan-detay/{$row['idsabit_ilanlar']}/'>{$row['ilan_adi']}</a>

    Umarım doğru anlayıp yardımcı olabilmişimdir.
  • 20-05-2013, 16:56:44
    #3
    owl1989 adlı üyeden alıntı: mesajı görüntüle
    Hocam sanırım anladığım kadarıyla sen linkleri GET ile gelen değişkenlerden ? kurtarmak niyetindesin.

    Hemen bir .htaccess dosyası oluşturup;

    <IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    rewritecond %{http_host} ^siteadi.com [nc]
    rewriterule ^(.*)$ http://www.siteadi.com/$1 [r=301,nc]
    
    
    RewriteRule ^sehirler/(.*)/ /sehirler.php?ref=$1 [L,NC]
    
    RewriteRule ^ilan-detay/(.*)/ /sabit_ilanlar.php?deger=$1 [L,NC]
    
    </IfModule>
    yazıyoruz. Böylelikle, bundan sonra değişkenleri sehirler.php?ref=1 yerine, sehirler/1/ olarak çıkıyor. Daha sonra manuel verdiğin linkleri de aynı şekilde düzenlemen gerekecek.

    Sabit ilanlarda;

    sabit_ilanlar.php?deger=1234 yerine,

    ilan-detay/1234/ olarak görünecektir.

    bunuda ; <a href='http://siteadi.com/ilan-detay/{$row['idsabit_ilanlar']}/'>{$row['ilan_adi']}</a>

    Umarım doğru anlayıp yardımcı olabilmişimdir.


    Üstat dediğin gibi yaptım linklerim site.com/19/ilan-adi.html olarak geliyor

    fakat bu boşluk temizleme ve Türkçe karakter düzeltmesini anlayamadım

    fonksiyon olarak şunu yaptım:
    function turkceyap($deger) {
    $turkce=array("ş", "Ş", "ı", "(", ")", "‘", "ü", "Ü", "ö", "Ö", "ç", "Ç", " ", "/", "*", "?", "ş", "Ş", "ı", "ğ", "Ğ", "İ", "ö", "Ö", "Ç", "ç", "ü", "Ü");
    $duzgun=array("s", "S", "i", "", "", "", "u", "U", "o", "O", "c", "C", "-", "-", "-", "", "s", "S", "i", "g", "G", "I", "o", "O", "C", "c", "u", "U");
    $deger=str_replace($turkce,$duzgun,$deger);
    $deger = preg_replace("@[^A-Za-z0-9-_]+@i","",$deger);
    return $deger;
    }


    ancak bunun çalışması için şunu söylemişler:
    <?php $yenibaslik = turkceyap($row_Recordset1['baslik']); echo $yenibaslik; ?>


    bu satırı nasıl nereye ekleyeceğim bulamadım

    benim şuanda çalışan url şu:

    <a href='{$row['kat_id']}/{$row['ilan_adi']}.html'>{$row['ilan_adi']}</a>
  • 20-05-2013, 17:16:59
    #4
    Üyeliği durduruldu
    sanırım bu şekilde olması lazım. bi dene istersen

    <?php 
      $yenibaslik = turkceyap($row['ilan_adi']); 
      echo $yenibaslik; 
    ?>
    <a href='{$row['kat_id']}/{$yenibaslik}.html'>{$yenibaslik}</a>
  • 20-05-2013, 19:20:43
    #5
    arkadaş dediğini yapamadım echo bölümüne koy demişsin echo nun yanına koydum ama olmadı ben aşağıya komple div i koyuyorum bi bakıp söylerseniz çok sevinirim



    <div>
    				<?php if($say>0){ echo "
    				<table cellpadding=0>
    				<tr><td width=70; height=42; style='background-image: url(./resim/urunResimYok.jpg)'></td><td width=402; height=42; style='background-image: url(./resim/ilanBaslik.jpg)'><a href='{$row['kat_id']}/{$row['ilan_adi']}.html'>{$row['ilan_adi']}</a></td><td width=70; height=42; style='background-image: url(./resim/urunFiyat.jpg)'>Yok</td><td width=80; style='background-image: url(./resim/urunTarih.jpg)'>{$row['ilan_tarihi']}</td><td style='background-image: url(data/img/tema/td_bg.png)'></td><td width=70; style='background-image: url(./resim/urunFiyat.jpg)'><a href='sabit_ilanlar.php?deger={$row['ili']}'>{$row['ili']}</a></td></tr>
    				</table>";}
    				?>
                    </div>


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 17:33:07 -->-> Daha önceki mesaj 17:32:16 --

    kodlu koyunca sapıttı birde böyle koyayım


    <div>
    <?php if($say>0){ echo "
    <table cellpadding=0>
    <tr><td width=70; height=42; style='background-image: url(./resim/urunResimYok.jpg)'></td><td width=402; height=42; style='background-image: url(./resim/ilanBaslik.jpg)'><a href='{$row['kat_id']}/{$row['ilan_adi']}.html'>{$row['ilan_adi']}</a></td><td width=70; height=42; style='background-image: url(./resim/urunFiyat.jpg)'>Yok</td><td width=80; style='background-image: url(./resim/urunTarih.jpg)'>{$row['ilan_tarihi']}</td><td style='background-image: url(data/img/tema/td_bg.png)'></td><td width=70; style='background-image: url(./resim/urunFiyat.jpg)'><a href='sabit_ilanlar.php?deger={$row['ili']}'>{$row['ili']}</a></td></tr>
    </table>";}
    ?>
    </div>

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 19:20:43 -->-> Daha önceki mesaj 17:33:07 --

    owl1989 adlı üyeden alıntı: mesajı görüntüle
    sanırım bu şekilde olması lazım. bi dene istersen

    <?php 
      $yenibaslik = turkceyap($row['ilan_adi']); 
      echo $yenibaslik; 
    ?>
    <a href='{$row['kat_id']}/{$yenibaslik}.html'>{$yenibaslik}</a>

    üstat dediğini yapabildim
    linklerim ve url yapısı sorunsuz, Türkçe karakter sorunsuz fakat şimdi de linklere tıklayınca 404 hatası veriyor açmıyor


    <?php 
      $yenibaslik = turkceyap($row['ilan_adi']); 
      echo $yenibaslik; 
    ?>
    <a href='{$row['kat_id']}/{$yenibaslik}.html'>{$yenibaslik}</a>
    [/QUOTE]



    htaccess.

    <IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d


    RewriteRule ^sabit_ilanlar-(.*)-(.*).html$ sabit_ilanlar.php?deger=$1&ilan_adi=$2 [L,NC]
    </IfModule>




    fonksiyonda bu:

    <?php
    function turkceyap($temizlen) {
    $turkce=array("ş", "Ş", "ı", "(", ")", "'", "ü", "Ü", "ö", "Ö", "ç", "Ç", " ", "/", "*", "?", "ş", "Ş", "ı", "ğ", "Ğ", "İ", "ö", "Ö", "Ç", "ç", "ü", "Ü");
    $duzgun=array("s", "S", "i", "", "", "", "u", "U", "o", "O", "c", "C", "-", "-", "-", "", "s", "S", "i", "g", "G", "I", "o", "O", "C", "c", "u", "U");
    $temizlen=str_replace($turkce,$duzgun,$temizlen);
    $temizlen = preg_replace("@[^A-Za-z0-9-_]+@i","",$temizlen);
    return $temizlen;
    }
    ?>