Lorsque l’on développe une application web avec le framework CodeIgniter 4, il est essentiel de bien comprendre le fonctionnement d’une route avec CodeIgniter 4.
Pourquoi ? Parce qu’une route définit comment une URL est interprétée et reliée aux contrôleurs. Elle est le cœur de la navigation dans votre projet, et leur bonne maîtrise garantit un code propre, sécurisé et facilement maintenable.
Dans ce tutoriel, nous allons explorer en profondeur les routes avec CodeIgniter 4, avec des exemples concrets, des astuces pratiques et une approche pensée pour les débutants. Que vous développiez un petit site vitrine ou une application complexe, vous verrez qu’une bonne gestion des routes vous fera gagner un temps précieux.
- Qu’est-ce qu'une route avec CodeIgniter 4 ?
- Les différents types de routes
- Paramètres dynamiques dans les routes avec CodeIgniter 4
- Sécuriser ses routes avec CodeIgniter 4 grâce aux filtres
- Cas concret : gérer un blog avec des routes avec CodeIgniter 4
- Utiliser le routage automatique (auto-routing)
- Rediriger une route avec CodeIgniter 4
- Organiser ses routes avec CodeIgniter 4 avec des groupes
- Nommer ses routes avec CodeIgniter 4 pour une navigation plus souple
- Utiliser les namespaces pour une route avec CodeIgniter 4
- Gérer les langues avec les routes
- Astuce : structurer les routes dans plusieurs fichiers
- Bonus : visualiser les routes avec la CLI
- Récapitulatif : ce que vous devez retenir sur les routes avec CodeIgniter 4
Qu’est-ce qu’une route avec CodeIgniter 4 ?
Une route avec CodeIgniter 4 est tout simplement une règle qui indique au framework quel contrôleur et quelle méthode doivent être exécutés lorsqu’un utilisateur visite une URL spécifique.
Par exemple, si un internaute visite monsite.com/contact
, les routes avec CodeIgniter 4 vont déterminer s’il faut exécuter ContactController::index()
ou une autre méthode.
Exemple de base :
$routes->get('contact', 'ContactController::index');
Ici, la route contact
est reliée à la méthode index()
du contrôleur ContactController
.
Où sont définies les routes avec CodeIgniter 4 ?
Par défaut, les routes avec CodeIgniter 4 se définissent dans le fichier suivant :
app/Config/Routes.php
C’est dans ce fichier que vous allez enregistrer toutes vos règles de routage. Il est automatiquement chargé par CodeIgniter 4 au lancement de l’application.
Exemple simple : créer une route avec CodeIgniter 4 pour un site vitrine
Imaginons que vous développiez un site vitrine avec trois pages :
- Accueil
- À propos
- Contact
Voici comment vous pourriez configurer vos routes avec CodeIgniter 4 :
$routes->get('/', 'HomeController::index');
$routes->get('a-propos', 'PagesController::about');
$routes->get('contact', 'PagesController::contact');
Grâce à ces routes avec CodeIgniter 4, vous contrôlez l’accès à chaque page depuis une URL conviviale.
Les différents types de routes
Les routes avec CodeIgniter 4 permettent plusieurs types de requêtes HTTP. En voici les principales :
Méthode | Usage |
---|---|
get() | Pour afficher une page (requête GET) |
post() | Pour envoyer des données via un formulaire |
add() | Accepte toutes les méthodes HTTP |
match(['get', 'post'], ...) | Pour combiner plusieurs méthodes |
Exemple :
$routes->post('envoyer-contact', 'ContactController::submitForm');
Ici, la route est exécutée uniquement lorsqu’un formulaire est soumis en POST.
Paramètres dynamiques dans les routes avec CodeIgniter 4
Les routes avec CodeIgniter 4 peuvent inclure des paramètres dynamiques. Cela permet de transmettre des valeurs directement via l’URL.
Exemple :
$routes->get('article/(:num)', 'BlogController::article/$1');
Cela signifie que l’URL article/12
exécutera BlogController::article(12)
.
Autres types de filtres possibles :
(:num)
: un entier(:any)
: tout caractère(:segment)
: un segment d’URL(:alpha)
: uniquement des lettres(:alphanum)
: lettres et chiffres
Ces fonctionnalités rendent les routes avec CodeIgniter 4 extrêmement puissantes.
Sécuriser ses routes avec CodeIgniter 4 grâce aux filtres
Il est possible d’ajouter des filtres aux routes avec CodeIgniter 4 pour, par exemple, protéger certaines pages derrière une authentification.
Exemple avec un filtre auth
:
$routes->get('admin', 'AdminController::index', ['filter' => 'auth']);
Grâce à cette méthode, seules les personnes connectées peuvent accéder à l’administration.
Cas concret : gérer un blog avec des routes avec CodeIgniter 4
Imaginons que vous construisiez un blog avec les fonctionnalités suivantes :
- Liste des articles (Découvrez également comment mettre en place la pagination avec CodeIgniter 4)
- Détail d’un article
- Administration des articles (CRUD)
Voici un exemple de configuration des routes avec CodeIgniter 4 :
// Page d'accueil du blog
$routes->get('/', 'BlogController::index');
// Voir un article
$routes->get('article/(:num)', 'BlogController::show/$1');
// Admin : ajouter un article
$routes->get('admin/article/create', 'Admin\ArticleController::create', ['filter' => 'auth']);
$routes->post('admin/article/save', 'Admin\ArticleController::save', ['filter' => 'auth']);
// Admin : modifier un article
$routes->get('admin/article/edit/(:num)', 'Admin\ArticleController::edit/$1', ['filter' => 'auth']);
$routes->post('admin/article/update/(:num)', 'Admin\ArticleController::update/$1', ['filter' => 'auth']);
Cet exemple vous montre comment tirer pleinement parti des routes avec CodeIgniter 4 dans un projet réel.
Utiliser le routage automatique (auto-routing)
CodeIgniter 4 propose une option de routage automatique. Cela signifie que vous n’avez pas besoin de déclarer chaque route manuellement.
Il suffit de respecter cette structure dans vos URL :
/nom-du-contrôleur/nom-de-la-méthode
Mais attention ! Ce mode est désactivé par défaut pour des raisons de sécurité. Si vous l’activez dans app/Config/Feature.php
, veillez à l’utiliser prudemment.
Rediriger une route avec CodeIgniter 4
Vous pouvez également rediriger une route vers une autre :
$routes->get('ancienne-page', function() {
return redirect()->to('nouvelle-page');
});
Pratique lorsque vous refondez votre site ou changez les URL.

Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?Bonnes pratiques pour les routes avec CodeIgniter 4
Voici quelques conseils pour organiser efficacement vos routes avec CodeIgniter 4 :
- Groupez vos routes par fonctionnalité (ex :
admin
,blog
,user
) - Utilisez des noms d’URL simples et SEO-friendly
- Ajoutez des filtres pour la sécurité
- Évitez le routage automatique en production
- Documentez vos routes pour faciliter la maintenance
Organiser ses routes avec CodeIgniter 4 avec des groupes
Les routes avec CodeIgniter 4 peuvent être regroupées. Cela permet de simplifier la gestion de votre fichier Routes.php
, surtout lorsque vous avez plusieurs routes similaires (par exemple pour une partie admin
).
Exemple :
$routes->group('admin', ['filter' => 'auth'], function($routes) {
$routes->get('dashboard', 'Admin\DashboardController::index');
$routes->get('users', 'Admin\UsersController::list');
$routes->get('users/edit/(:num)', 'Admin\UsersController::edit/$1');
});
Ici, toutes les routes avec CodeIgniter 4 du groupe admin
sont automatiquement filtrées par auth
(authentification). Cela rend votre code plus clair, plus DRY (Don’t Repeat Yourself), et plus facile à maintenir.
Nommer ses routes avec CodeIgniter 4 pour une navigation plus souple
Vous pouvez nommer vos routes avec CodeIgniter 4 pour les retrouver plus facilement dans vos vues ou redirections.
Exemple :
$routes->get('profil', 'UserController::profile', ['as' => 'user-profile']);
Et pour générer l’URL dans une vue :
<?= route_to('user-profile'); ?>
C’est particulièrement utile dans les gros projets où vous avez des dizaines (voire des centaines) de routes avec CodeIgniter 4.
Utiliser les namespaces pour une route avec CodeIgniter 4
Quand vous organisez vos contrôleurs dans des sous-dossiers (App\Controllers\Admin
par exemple), vous pouvez définir un namespace de base pour vos routes.
Exemple :
$routes->group('admin', ['namespace' => 'App\Controllers\Admin'], function($routes) {
$routes->get('produits', 'ProduitsController::index');
});
Cela permet à CodeIgniter de savoir dans quel dossier chercher vos contrôleurs sans que vous ayez à le spécifier à chaque route. Encore une fois, cela améliore la lisibilité et la structure du projet.
Gérer les langues avec les routes
CodeIgniter 4 est parfaitement compatible avec des sites multilingues. Vous pouvez définir des routes avec CodeIgniter 4 spécifiques à chaque langue, ou utiliser des segments d’URL pour charger la bonne langue.
Exemple :
$routes->group('{locale}', ['namespace' => 'App\Controllers'], function($routes) {
$routes->get('/', 'HomeController::index');
$routes->get('contact', 'HomeController::contact');
});
Avec cette configuration, vous pouvez accéder à :
/fr/contact
/en/contact
Et le framework chargera automatiquement les bons fichiers de langue. C’est idéal pour développer des sites internationaux avec un routage clair et cohérent.
Cas concret : créer un espace client multilingue
Voici un petit exemple réaliste d’utilisation des routes avec CodeIgniter 4 dans un espace client disponible en plusieurs langues :
$routes->group('{locale}/mon-compte', ['filter' => 'auth'], function($routes) {
$routes->get('/', 'Client\Dashboard::index');
$routes->get('commandes', 'Client\Commandes::index');
$routes->get('profil', 'Client\Profil::edit');
});
Vous offrez ainsi une expérience fluide, sécurisée, et multilingue à vos utilisateurs grâce à la puissance des routes avec CodeIgniter 4.
Astuce : structurer les routes dans plusieurs fichiers
Si votre application devient très grande, vous pouvez répartir les routes avec CodeIgniter 4 dans plusieurs fichiers, par exemple :
Routes/admin.php
Routes/blog.php
Routes/api.php
Et les inclure dans app/Config/Routes.php
:
if (file_exists(APPPATH . 'Routes/admin.php')) {
require APPPATH . 'Routes/admin.php';
}
Cette organisation est recommandée pour les projets de taille moyenne à grande. Elle rend la gestion des routes avec CodeIgniter 4 plus modulaire.
Bonus : visualiser les routes avec la CLI
La CLI de CodeIgniter 4 permet d’afficher toutes les routes avec CodeIgniter 4 définies dans l’application.
Dans votre terminal :
php spark routes
Vous obtiendrez une liste claire de toutes les routes, leurs méthodes HTTP, leur destination (contrôleur::méthode), leurs filtres, etc.
C’est extrêmement pratique pour déboguer ou pour avoir une vue d’ensemble de votre architecture.
Récapitulatif : ce que vous devez retenir sur les routes avec CodeIgniter 4
- Les routes avec CodeIgniter 4 connectent vos URL à vos contrôleurs.
- Vous pouvez définir des routes GET, POST, dynamiques, filtrées, et même groupées.
- Le routage peut être manuel (recommandé) ou automatique (à éviter en production).
- Les groupes, les namespaces et les noms de routes rendent vos fichiers plus propres.
- CodeIgniter 4 prend en charge les routes multilingues très facilement.
- Une bonne organisation de vos routes avec CodeIgniter 4 est essentielle dans un projet pro.

les routes avec CodeIgniter 4 sont votre meilleur allié
Vous l’avez vu à travers ces deux parties : bien maîtriser les routes avec CodeIgniter 4, c’est maîtriser la colonne vertébrale de votre application. Avec un système de routage clair, bien structuré et sécurisé, vous allez gagner en temps, en performance, et en qualité de code.
Que vous soyez débutant ou développeur confirmé, n’hésitez pas à expérimenter avec les nombreuses possibilités offertes par les routes avec CodeIgniter 4. C’est un pilier essentiel pour réussir vos projets web avec ce framework moderne, rapide et puissant.
🔁 Besoin d’un exemple de projet complet utilisant les routes avec CodeIgniter 4 ? N’hésitez pas à consulter mes formations gratuites en live sur Twitch ou mes articles de blog dédiés au développement web.
- 🔥 Vendredi 25 Avril 2025 >19h00
HTML & SémantiqueStructure d'une page HTML