Bilal Ünal

Codeigniter Url yapısından index.php kaldırmak

Bilindiği üzere codeigniter çatısında öntanımlı olarak gelen url yapısı şöyledir;

http://127.0.0.1/approot/index.php/controller_adi/metod_adi

Bu yazıda, bu url yapısını değiştirerek şunu elde edeceğiz;

http://127.0.0.1/approot/controller_adi/metod_adi

Adım 1

Uygulamanın /config/config.php dosyası içerisinde şu satırları düzenliyoruz

// Alttaki satırı bulun
$config['index_page'] = "index.php"

// Bu şekilde değiştirin
$config['index_page'] = ""

Adım 2

Uygulamanın ana dizinine yeni bir .htaccess dosyası oluşturalım. İçeriği şu şekilde olacak;

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

Adım 3

Bazı durumlarda uri_protocol tam anlamıyla çalışmıyor. Bu sorunun önüne geçmek için yine config.php dosyasında bir satırı düzenlemek gerekiyor.

//  Aşağıdaki satırı bulun
$config['uri_protocol'] = "AUTO"

//  Bu şekilde değiştirin
$config['uri_protocol'] = "REQUEST_URI"

Hepsi bu.