Codeigniter ile URI yönlendirme (URI routing) yapacağız. Codeigniter'ın genel URI dizilimi "siteniz.com/class(controller)/function/ID" olduğu için SEO açısından bu dizilim değiştirilmek istenebilir. İşte URI routing bize linkleri kontrol etme imkanı sunuyor. Aslında bu işlemler .htaccess dosyası ile yapılabilir ancak Codeigniter Framework işimizi kolaylaştırıyor.
URI Routing işlemleri yapılacak dosya: application\config\routes.php
Kendi URI yönlendirmelerinizi yaparken kullanabileceğiniz 2 yöntem var: Regular Expressions ve Wildcards. Bu yazıda sadece wildcard örnekleri paylaşacağım.
Wildcards
Codeigniter'da routing yapılabilen 2 wildcard türü vardır.
1) (:num) sadece sayı eşleştirmeleri için kullanılır.
2) (:any) herhangi karakter eşleştirmeleri için kullanılır.
Örnekler
"haberler" sınıfı, "sehirler" sınıfına yönlenecektir. Yani "siteniz.com/haberler" adresi girildiğinde "siteniz.com/sehirler" adresi çağrılacaktır.
$route['haberler'] = 'sehirler';
"haberler" sınıfının "spor" metodu, "kategori" sınıfının "takim" metoduna yönlenecektir. Yani "siteniz.com/haberler/spor" adresi girildiğinde "siteniz.com/kategori/takim" adresi çağrılacaktır.
$route['haberler/spor'] = 'kategori/takim';
"urunler" sınıfının ardından herhangi bir karakter girildiğinde, "katalog" sınfının "urun" metoduna yönlenecektir. Yani "siteniz.com/urunler/xyz123" adresi girildiğinde "siteniz.com/katalog/urun" adresi çağrılacaktır.
$route['urunler/(:any)'] = 'katalog/urun';
"urunler" sınıfının ardından sayı girildiğinde, "katalog" sınıfının "secilen_urun" metoduna parametre olarak geçecektir. Yani "siteniz.com/urunler/123" adresi girildiğinde "siteniz.com/katalog/secilen_urun/123" adresi çağrılacaktır.
$route['urunler/(:num)'] = 'katalog/secilen_urun/$1';