Tekil Mesaj gösterimi
  #1 (permalink)  
Alt 30. Temmuz 2008, 19:58:49
antiseptic - ait Kullanıcı Resmi (Avatar)
antiseptic antiseptic isimli üye çevrimdışı
SEOkolik
 
Üyelik Tarihi: Mayıs 2008
Mesajlar: 202
Standart Scriptler için SEF

şimdi diyelim ki şöyle bir kodumuz var:

PHP- Kodu:
echo "<td align='center' valign='top' width='50%'><a href='articles.php?cat_id=".$data['article_cat_id']."'>".$data['article_cat_name']."</a> <span class='small2'>($num)</span>"
bu kodun oluşturduğu linkler şöyle oluyor:

/articles.php?cat_id=1

bu kodu SEF yapmanın en mantıklı yolu şudur:

/makaleler/kategori ismi-id1/

yani basit bir klasörleme sistemi. ama ben bunu yapamadım çünkü SEF yapmaya çalıştığım sistemde tüm klasörlemeler ../../ gibi üst klasöre çıkma şeklindeydi ve ben uğraşamadım, söyle yaptım:

/makale-kategori-ismi-id1.html

konumuza dönelim: burada mantık şu server, id kelimesinden sonragelen numarayı cat_id olarak algılayacak ve o sayfayı gösterecek

**ince nokta:: buradaen sonra id1 yazdıktan sonra isterse en başta hiç birşey yazmasın, bu tamamen serbest kalıyor. mesela

/makale-arabalar-id1.html

adresi ile

/makale-suleyman-necip-huseyin-id1.html

adresi aynı sayfayı verir.

şimdi öncelikle bu kodumuzu düzenleyelim:

PHP- Kodu:
echo "<td align='center' valign='top' width='50%'><a href='makale-".$data['article_cat_name']."-id".$data['article_cat_id'].".html'>".$data['article_cat_name']."</a> <span class='small2'>($num)</span>"
kodu bize yeterli olur.

fakat bir ayrı var: eğer kategori ismimizde ğşıöç ve ya /*'^+%&/() gibi karakterler varsa bu karakterler url imizi bozacaktır. bunları temizlemek için de bir fonksiyon kullanacağız:

PHP- Kodu:
      function seoname($seoit) {
      
// $seoit = strip_tags($seoit);
      
$seoit str_replace('=',' ',$seoit);
      
$seoit str_replace('/',' ',$seoit);
      
$seoit str_replace('\\',' ',$seoit);
      
$seoit str_replace('@',' ',$seoit);
      
$seoit str_replace('~',' ',$seoit);
      
$seoit str_replace('!',' ',$seoit);
      
$seoit str_replace('£',' ',$seoit);
      
$seoit str_replace('$',' ',$seoit);
      
$seoit str_replace('%',' ',$seoit);
      
$seoit str_replace('^',' ',$seoit);
      
$seoit str_replace('*',' ',$seoit);
      
$seoit str_replace('_',' ',$seoit);
      
$seoit str_replace('{',' ',$seoit);
      
$seoit str_replace('}',' ',$seoit);
      
$seoit str_replace('[',' ',$seoit);
      
$seoit str_replace(']',' ',$seoit);
      
$seoit str_replace('-',' ',$seoit);
      
$seoit str_replace(' & ',' ',$seoit);
      
$seoit str_replace('"',' ',$seoit);
      
$seoit str_replace('.',' ',$seoit);
      
$seoit str_replace('\'',' ',$seoit);
      
$seoit str_replace(',',' ',$seoit);
      
$seoit str_replace(' ','-',$seoit);
      
$seoit str_replace(' ','-',$seoit);
      
$seoit str_replace(' ','-',$seoit);
      
$seoit str_replace(':','',$seoit);
      
$seoit str_replace('#','',$seoit);
      
$seoit str_replace('(','',$seoit);
      
$seoit str_replace(')','',$seoit);
      
$seoit str_replace('---','-',$seoit);
      
$seoit str_replace('--','-',$seoit);
      
$seoit strtolower($seoit);
      return 
$seoit;
      } 
bu fonksiyonu, global ve ya config gibi (her sayfaya inc edilen, header de olabilir) sayfalara iclude edin ve bu fonksiyonu kullanın.

şimdi "seoname" fonksiyonu kullanılmış şekilde kodumuzu yazalım:

PHP- Kodu:
echo "<td align='center' valign='top' width='50%'><a href='makale-".seoname($data['article_cat_name'])."-id".$data['article_cat_id'].".html'>".$data['article_cat_name']."</a> <span class='small2'>($num)</span>"
evet artık tamam! örnek: kategori ismimiz "Dağlar / İnsanlar" ise bu url içinde "daglar-insanlar" şeklinde gözükür.

artık işlem bitti gibi. son olarak .htaccess dosyamızı yazalım ve bitirelim

sitenizin kurulu olduğu dizinde ".htaccess" isimli bir dosya oluşturun ve içine şunları yazın:

Kod:
RewriteBase /
RewriteEngine On

RewriteRule ^makale-(.*)-id([0-9]*).html$ articles.php?cat_id=$2 [L,NC]
açıklama:

1.satır: yeniden yazdırma klasörü - siteniz ana dizindeyse böyle kalsın ama mesela forum için:

Kod:
RewriteBase /forum/
yazmanız gerekir

2. satır: yeniden yazdırma başlasın!

4. satır: yeniden yazdırma kuralı:

"başında makale yazsın, sonunda da id yazıyorsa id yazan yerin yanındaki rakamı benim articles.php?cat_id= kısmına yaz da sayfa görülsün"

şeklinde bir istektir bu satır

sorularınızı buradan sorabilirsiniz

Emir Ercan AYAR
Alıntı Yap ve Yanıtla