.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éthodeLe contenu

Ajoutez le fichier dans votre dossier public.

1
# Empêcher l'affichage du contenu des répertoires
2
Options -Indexes
3
4
# Activer le moteur de réécriture
5
RewriteEngine On
6
7
# Rediriger toutes les requêtes vers index.php si le fichier ou dossier demandé n'existe pas
8
RewriteCond %{REQUEST_FILENAME} !-f
9
RewriteCond %{REQUEST_FILENAME} !-d
10
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.

ExempleTestez

Modifiez votre fichier app/views/header.php

1
<header>
2
    <nav>
3
        <ul>
4
            <li><a href='home'>Accueil</a></li>
5
            <li><a href='personnes'>Personnes</a></li>
6
        </ul>
7
    </nav>
8
</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 ?