Sanat.Pardus güzel görünsün diye başladığım SEF maceramı anlatayım bari :)
Şimdik,
web programlama da kullandığımız en güzel dillerden biri olan PHP ile
basit bi script yazdık diyelim. Scriptimiz GET metodu ile adres
çubuğundan şu şekilde veri alıyor olsun;
http://www.hede.com/?id=5&pid=18 http://www.hede.com/?id=5&cid=12
yeterince karışık gözüküyor değil mi ? Bunun yerine şöyle gözükse;
http://www.hede.com/page/5/18 http://www.hede.com/customer/5/12
şimdi güzel oldu :) Peki nasıl yapıyoruz ? Bu iş için Apache ‘nin
nimetlerinden faydalanıyoruz. Nimetimizin adı mod_rewrite ;) Nimet
çalıştıracağınız dosyanın bulunduğu dizindeki “.htaccess” dosyasını
parametre alarak çalışıyor. .htaccess ın nasıl olması gerektiğine
bakmadan önce sunucumuzda mod_rewrite ın yüklü olup olmadığını kontrol
etmek gerek; basit bir phpinfo ile halledebiliriz:
< ? phpinfo(); ? >
çıktı içerisinde bulunan Apache (ya da Apache2) Handler içindeki Loaded
Modules kısmında mod_rewrite ı görüyorsanız işlem tamamdır.
Göremiyorsanız, Apache ‘yi tekrar derleyebilir ya da yeni bir sürümünü
kurabilirsiniz.
Mod_rewrite destek kontrolünü de geçtikten sonra sıra geldi .htaccess dosyasına..
İlk verdiğimiz örnekten gidelim;
http://www.hede.com/?id=5&pid=18
adresten sonra iki tane parametre alınıyor bunları $1 ve $2 olarak düşünelim;
id=$1 ve pid=$2
buraya kadar herşey güzel fakat aynı sayfa (index.php muhtemelen)
ikinci örnekte de iki parametre alıyor, bu durumda bi ayrıma gideriz;
id ve pid verilirse “page” takma adı üzerinden, id ve cid verilirse
“customer” takma adı üzerinde işlem görsün gibi.. bu durumda;
http://www.hede.com/?id=5&pid=18 için http://www.hede.com/page/5/18 http://www.hede.com/?id=5&cid=18 için http://www.hede.com/customer/5/18
şimdi .htaccess ı yazalım;
RewriteEngine On #Rewrite Motorunu çalıştırıyoruz RewriteBase / #Kök dizini / olarak tanımlıyoruz RewriteRule ^page/(.*)/(.*) /index.php?id=$1&pid=$2 #page için kuralımızı yazdık RewriteRule ^customer/(.*)/(.*) /index.php?id=$1&cid=$2 #customer için kuralımızı yazdık
Hepsi bu :) Dosyayı index.php nin bulunduğu dizine “.htaccess” olarak (nokta da dahil) kaydedin ;)
Tags: gezegen.linux, gezegen.pardus