Retirer le "index.php" sur CodeIgniter 4 pour corriger l'erreur "File Not Found"

Par T-PHP dans Développement

Si vous utilisez CodeIgniter 4 et que vous créez un controler, vous pouvez avoir la mauvaise surprise d'avoir le message d'erreur "File not found." qui apparaît.

En fait, cela est dû à une configuration a effectuer dans le fichier .htaccess

Par exemple, si vous créez un controller "Pages.php" avec une fonction "index" et que vous essayez d'accéder à la page www.monsite.com/pages, vous obitendrez l'erreur suivante : "File not foud" (voir image ci-desous)

CodeIgniter 4 File Not Found

Si par contre, vous accéder à la page www.monsite.com/index.php/pages, dans ce cas là, plus de soucis.

Pour corriger ce problème, cela est très simple car il faut simplement ajouter un caractère dans le fichier .htaccess

Pour cela, ouvrez le fichier ".htaccess" situé dans le répertoire "public".

Cherchez la ligne suivante : 

RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA]

Et ajouter simplement un point d'interrogation après le "index.php"

RewriteRule ^([\s\S]*)$ index.php?/$1 [L,NC,QSA]

Et voilà ! Vous pouvez désormais accéder à l'url www.monsite.com/pages, sans erreur.

Facile non ?

Il se peut également que votre fichier de configuration App.php ne soit pas bien configuré.

Pour le modifier, ouvrez le fichier "App.php" qui se trouve dans le répertoire "app/Config"

Il vous suffit alors de retirer le "index.php" de la variable $indexPage

Avant :

public $indexPage = 'index.php';

Après :

public $indexPage = '';

Après avoir fait ces modifications, vos urls ré-écrites fonctionneront parfaitement sur CodeIgniter4


Commentaires

Ajouter un commentaire

T-PHP

PHP, SEO, LINUX

E-Commerce, Nouvelles technologies

Rechercher