Htaccess Url Yönlendirme ve Kullanımı
http://www.kodmerkezi.net/index.php?p=22&yazi=permalink şeklindeki linki http://www.kodmerkezi.net/22/Permalink şeklinde linke çevirme işlemi.
Arkadaşlar biliyoruz ki bir çok dinamik sitelerde de site url leri www.kodmerkezi.net/index.php?p=22 gibi url yerine www.kodmerkezi.net/22 , www.kodmerkezi.net/22.htmlveya www.kodmerkezi.net/22.htm gibi şekillerde görürüz.Hatta kullandığımız bir çok blog sistemlerinde bu yapı hazır olarak bize sunulmaktadır.
Peki biz kendi tasarladığımız sistemlerde bu yapıyı nasıl kullanacağız? Öncelikle bilmemiz gereken bir iki nokta var.Bu işlemler Apache üzerinden sunucularda yer alan .htaccess adlı dosya ile yapılmaktadır. Ayrıca bu yapıyı kullanabilmek için bunların yanında bir de bize bu işi yapan, mod_rewrite isimli komut lazım.
Örnek verecek olursak;
Mesela http://www.kodmerkezi.net/index.php?p=22&yazi=permalink şeklindeki url yi http://www.kodmerkezi.net/22/Permalink şeklinde url ye çevirmek istiyoruz.
(Not: oluşturacağımız url içinde kesinlikle boşluk olmaması gerekiyor,boşluk yerine _,-,+ gibi karakterleri kullanabilirsiniz. Ayrıca arama motorlarında daha etkili bir rol almak istiyorsanız tavsiyem _ yerine – kullanın.Çünkü _ iki kelimeyi birleştirir ve tek kelime haline dönüştürür. – ise ayrı iki kelime olduğunu belirtir. )
Şimdi işlemlerimize geçelim; http://www.kodmerkezi.net/index.php?p=22&yazi=permalink şeklindeki linkimizi http://www.kodmerkezi.net/22/Permalink şeklinde göstermek ve işlemek için sql ile çektiğimiz kayıtlarımızı ufak bir düzenlemeden geçirerek bazı karakterleri ayıklamalıyız. PHP`de hazırladığım ufak bir kod ile türkçe karakterlerde dahil birkaç karakteri temizliyorum.Url ye geçecek başlığı önce bu fonksiyonla temizliyoruz ki yukarıda belirttiğim boşluktan kurtuluyoruz, ayrıca takdir edersiniz ki url de türkçe karakter bulunamaz. Bu fonksiyonumuz türkçe karakterleri de ayıklıyor.
function permalink($cekilensatir)
{
$bulunacak = array(“`”,”,”,”ç”,”ı”,”ş”,”ğ”,”ü”,”ö”,”ğ”,”ş”,”Ç”,”Ö”,”Ü”,” “,”!”);
$degistir = array(“”,””,”c”,”i”,”s”,”g”,”u”,”o”,”G”,”S”,”C”,”O”,”U”,”-“,””);
$onarilmis = str_replace($bulunacak, $degistir, $cekilensatir);
$onarilmis = URLencode(htmlentities($onarilmisr,ENT_QUOTES));
return $onarilmis;
}
PHP ile linki bu şekilde düzenledikten sonra link içerisinde boşluk içeren kısımları -`a çevirdik. şimdi .htaccess düzenlemesi ile son işlemlerimizi de halledelim.Aşağıdaki kodu .htaccess isimli dosyaya kaydediyoruz ve sitemizin ana dizinine atıyoruz. Böylece bütün dizinleri kapsamış oldu.Dikkat: Eğer zaten bir .htaccess dosyası varsa onu değiştirmek sorun yaratabilir,sonuçta ayar dosyası diyebiliriz,yeterli bilginiz yoksa, bilen birinden yardım alın.Aksi halde oluşacak sorunlardan sorumlu değiliz.
Options
RewriteEngine on
RewriteBase /
RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9\_]-)/?$ index.php?p=$1&yazi=$2
Yukarıdaki kodu açıklayalım şimdi de;
RewriteEngine on ile sunucuya anlamlı link tekniğine başladığımızı söylüyoruz.
RewriteRule ile sonrasında belirli karakter kodlamalarını adres ile değiştirip gerekli işlemi başlatmış oluyoruz. Bizim yazdığımız kodda; http://www.kodmerkezi.net/index.php?p=22&yazi=permalink şeklinde görüldüğü gibi iki tane değer bölümümüz bulunuyor. p ve yazi. Bunların aldıkları değerleri / le böleceğimiz için aldıkları değerleri parselemeliyiz. ^([A-Za-z0-9]+) ile id değerimiz yani $1 değişkeninin karakter kodlamasını alıyoruz. id değerimiz sadece sayısal/integer ifade ise 0-9 olması yeterlidir. bu şekilde birinci parseleme işlemini halletmiş oluyoruz. Aynı şekilde ikinci parse alanında da bu işlemi yapıyoruz. Ancak birinciden farklı olarak bu defa – karakterini de işin içine dokmalıyız ki urlmizde boşlukları – olarak işleme koyabilelim.
Sonrasında index.php dosyasından sonraki kodları parselemiş ve bunu da .htaccess`a açıklamış oluyoruz.
URL Rewrite sadece URL yazmak için kullanmaktan ziyade ,spider yönlendirme,emailextractor koruması sub domain yönlendirmesi… gibi bir çok görev için de kullanılmaktadır.
Bunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Visual Studio da Header ve Library Dosyalarını Include Etme
Sonraki: Htaccess Url Yönlendirme ve Kullanımı – 2 >>>
[…] Permalink yapımı konulu makalemizin bugün ikinci bölümünü oluşturacağız. Eğer ilk makaleyi okumadıysanız lütfen önce buradan okuyun. […]
merhaba, hocam benim istediğim olay örnek ile
http://makale.kodmerkezi.net/htaccess-url-yonlendirme-ve-kullanimi.html
bu linki aynı zamanda şu şekilde de açabilmek
http://makale.kodmerkezi.net/htaccess-url-yonlendirme-ve-kullanimi
fark sadece sonunda ki .html olmaması
Mehmet,
Buradaki örnek uygulamamızı incelerseniz ayrıntılı bilgiye ulaşabilirsiniz.
Anlamadığım birşey var benim hocam. permalink fonksiyonu nereden çağırılıyor ve nerede kullanılıyor acaba ?
Yorum Bırakın!
En Son Yazılanlar
Codeigniter Dersleri
Kategoriler
Teknoloji Haberleri
Android Dersleri
Arşiv
Sitemizin QR Kodu
Yeniliklerden İlk Sizin Haberiniz Olsun
KodMerkezi.Net Facebookta
En Çok Okunanlar
En Son Aranan Kelimeler
En Çok Oy Alanlar
Etiket Bulutu
İlginizi Çekecek Siteler
Arşiv
Yönetim
En Son Yapılan Yorumlar
En Çok Okunanlar