CodeIgniter İndex.php’yi Kaldırma

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.

AuthorHarun ALP

Bu adam , bilgi sahibi olduğu konularda makalelerini daha bilgilendirici hale getirip görseller ile süslüyor ve seo uyumlu makaleler ortaya çıkarıyor. Güncel webmaster konularını işlemekten keyif alıyor ve genelde her makale aslında bir sorunun çözümü niteliğinde.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir