kişisel düşünceler, üstüne bir de teknoloji..

CodeIgniter Routes.php İle SEO Dostu Linkler

Bugünkü yazımda Php frameworklerden CodeIgniter’da SEO dostu linkleri nasıl oluşturabileceğimizi anlatacağım. CodeIgniter’ın varsayılan url kullanımı index.php/controller/mehod şeklindedir. Bu çoğu zaman yetersiz gelir. Önce adres satırından index.php’yi kaldırıp sonra da adres satırındaki diğer kısımları daha kullanışlı, seo dostu hale getiririz genelde. Öncelikle konuya yabancı olan arkadaşlar CodeIgniter Adresten index.php Kaldırma başlıklı yazımı okuyup buradakileri ondan sonra uygularlarsa işlemde sorun yaşama ihtimalleri azalacaktır.

Codeigniter SEO Dostu Link Kullanımı

İşin aslı burada yapacağımız işlem .htaccess üzerinden yapılan url düzenleme işlemiyle hemen hemen aynı. En önemli farkı işlemlerimiz için .htaccess dosyasını değil de application/config/routes.php yolundaki yönlendirme dosyasını kullanacak oluşumuz.

$route['404_override'] = '';

404 hatalarında gösterilecek fonksiyonu tanımladığımız bu satırın hemen altına kendi yönlendirme komutlarımızı yazabiliriz.

URL yönlendirme komutlarımızı yazarken kullanacağımız 2 tipten bahsetmek istiyorum.

  • İlkinde  sayısal tipteki veriler için (:num) , sayısal ve string verilerin hepsini almak için (:any) kullanacağız.
  • İkinci olarak da bunun için regex kullanmak isterseniz (:num) yerine ([0-9]+)(:any) yerine (.*?) kullanabilirsiniz.
$route['makale/(:num)-(:any)\.html'] = "makale/oku/$1/$2";

Yukarıdaki yönlendirme komutu http://www.siteadresi.com/makale/oku/2/denememakalesi linkini ziyaret etmişiz gibi algılanacaktır. Ama aslında kullanıcılarımız http://www.siteadresi.com/makale/2-denememakalesi.html adresini kullanıcak. Burada aslında gelen isteği yakalayıp kendi fonksiyonumuza yönlendirdik basitçe. Yukarıdaki kodun eşittir’den sonrasındaki kısmından da anlayacağınız gibi isteği  yakalayıp makale conroller’ı içerisindeki oku fonksiyonuna parametre gönderdik.

public function makale() 
    { 
        //Gönderdiğimiz parametreleri alabilmek için URL Helper'i yüklüyoruz
        $this->load->helper("url"); 

        //Url helperında bulunan segment methodunu kullanarak gerekli alanları çekiyoruz. 
        $sefurl = $this->uri->segment(3,0); 
        $id = $this->uri->segment(2,0); 

        //Burada da gelen id ve sefurl değişkenlerine göre içeriğinizi göstermenizi sağlayan kodlarınız olacak.
    }

Yukarıda gelen verileri nasıl yakalayacağımızı gösteren bir fonksiyon örneği de paylaştım. Elimden geldiğince anlaşılır şekilde CodeIgniter URL Yönlendirme işlemini anlatmaya çalıştım. Umarım faydalı olmuştur.

1 Comment

  1. Nurettin Kaya

    İşime yaradı, daha temiz yazabiliyorum artık. Teşekkür ederim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir