Codeigniter kullanırken temel derslerde dikkat ettiyseniz sürekli index.php kullanılmaktadır. Default controller’dan farklı olarak bir method geldiğinde kullanılan url yapısı biraz farklı yani istemediğimiz bir hale geliyor. İndex.php ibaresini kaldırmadığımızda url yapısı şu şekildedir.
http://localhost/codeigniter/index.php/controller-adi
Bu durumu ortadan kaldırıp ;
http://locahost/codeigniter/controller-adi
şekline getirmek istiyorsak gereken işlemlere sırasıyla bir göz atalım.
1. Öncelikle Apache içinde bulunan httpd.conf’tan “rewrite_module” aktif hale getirilmelidir. (X:\wamp\bin\apache\Apache2.2.21\conf\httpd.conf)
Aktifleştirmek için #LoadModule rewrite_module modules/mod_rewrite.so satırının başındaki (varsa) # işaretini kaldırın. Ardından aynı dosya içerisinde “” kısmını bulun ve bu satırın biraz altındaki AllowOverride kısmının değerini “all” olarak değiştirin. Tüm bu işlemleri tamamladıktan sonra sunucunuzu yeniden başlatın.
2.İkinci yöntem olarak projenin ana dizininde bir .htaccess dosyası oluşturarak çözebiliriz.Açtığımız .htaccess dosyasının içine şu kodları yapıştıralım.
RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
3. Config dosyasından (X:\wamp\www\projem\application\config\config.php) “index_page” özelliğine karşılık gelen değeri silin. Oda burada mevcut ;
$config['index_page'] = '';
Bu üç yöntem sayesinde index.php ibaresini ortadan kaldırarak direk controller’a ve methodlara erişebilirsiniz. Yani http://localhost/projeismi/control-ismi. Herkese iyi çalışmalar.