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.
PHP Permalink yaparken link vermek?
4
●614
- 20-05-2013, 15:42:29Üyeliği durdurulduHocam sanırım anladığım kadarıyla sen linkleri GET ile gelen değişkenlerden ? kurtarmak niyetindesin.Anasayfam adlı üyeden alıntı: mesajı görüntüle
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:44owl1989 adlı üyeden alıntı: mesajı görüntüle
Ü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, 19:20:43arkadaş 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
ü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;
}
?>