CodeIgniter 3 : Supprimer index.php dans l’URL via .htaccess

Voici un petit tuto rapide pour vous permettre de supprimer le terme « index.php » indiqué dans vos URL de votre application CodeIgniter

CodeIgniter est un framework PHP MVC, un jour peut-être je ferais un article plus détaillé sur CodeIgniter, mais pour résumé par défaut vous devez saisir une URL du type « http://votresite.fr/index.php/monController/maMethode » afin d’accédez à la page générée par la méthode maMethode de votre controller monController.

Lorsque je suis en phase de développement, je travailles assez souvent avec le serveur Web inclus dans PHP, je n’ai donc pas ce problème. Mais lorsque je passes mes applications crées avec CodeIgniter sur le serveur de production, toutes mes URL sont cassées.

L’objectif de ce tuto est donc de supprimer le terme index.php de votre URL.

Pour cela créez un fichier .htaccess à la racine de votre installation CodeIgniter, puis dans ce fichier, saisissez ce qui suit :

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

C’est tout. Vous pouvez désormais accéder à votre page avec une URL lestée de index.php : « http://votresite.fr/monController/maMethode ».

Si vous utilisez le helper URL pour gérer vos redirections ou construire vos liens, je vous conseilles également de modifier le fichier de configuration afin de remplacer :

$config['index_page'] = 'index.php';

Par :

$config['index_page'] = '';