.htaccess
Afin d'utiliser la réécriture d'adresse en PHP, il faut ajouter un fichier spécifique dans le dossier public de votre site.
Ce fichier n'a pas de nom, seulement une extension : .htaccess
Méthode : Le contenu
Ajoutez le fichier dans votre dossier public.
# Empêcher l'affichage du contenu des répertoires
Options -Indexes
# Activer le moteur de réécriture
RewriteEngine On
# Rediriger toutes les requêtes vers index.php si le fichier ou dossier demandé n'existe pas
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
Options -Indexes : empêche l'affichage du contenu des répertoires
RewriteEngine On : active la réécriture
RewriteCond %{REQUEST_FILENAME} !-f : Vérifie que l'URL demandée ne correspond pas à un fichier existant.
RewriteCond %{REQUEST_FILENAME} !-d : Vérifie que l'URL demandée ne correspond pas à un répertoire existant.
RewriteRule ^ index.php [L] : règle de réécriture
^ : toutes les URL sont redirigées.
index.php : redirection vers index.php.
[L]: Indique que cette règle est la dernière à appliquer.
Principe :
Si vous tapez personnes en réalité c'est la page index.php qui sera ouverte.
Si vous tapez images/photo.png si le fichier existe, c'est l'image correspondante qui sera ouverte, sinon index.php.
Exemple : Testez
Modifiez votre fichier app/views/header.php
<header>
<nav>
<ul>
<li><a href='home'>Accueil</a></li>
<li><a href='personnes'>Personnes</a></li>
</ul>
</nav>
</header>
Cliquez sur les liens. Quelque soit l'url vous voyez toujours le fichier index.php.
Tapez l'url d'une de vos images ou de votre fichier css. Que constatez vous ?