I. Présentation
Un site web est quelque chose de vivant, il arrive donc que certains dossiers, répertoires ou pages autrefois utilisés deviennent obsolètes et amènent alors à une page de type erreur 404. Pour cela, il est recommandé de mettre en place des redirections 301. Nous allons ici voir comment mettre une redirection 301 sur tout un répertoire.
II. Rediriger un répertoire via des règles 301
Le fait de vouloir rediriger tout un répertoire vers une nouvelle URL évite souvent d'oublier des URLS et de se retrouver alors avec des utilisateurs qui pensent que votre site web n'est plus maintenu ou obsolète, cela permet également aux robots de revenir sur des pages valables.
Lorsque je parle de “tout un répertoire”, je veux dire que les URL suivantes :
- www.site.test/rep1/
- www.site.test/rep1/page-de-test.php
- www.site.test/rep1/sous-rep1/
- www.site.test/rep1/sous-rep1/page-de-test2.php
seront toutes redirigées vers une même URL valide.
Note : La redirection via Htacess possède quelques pré-requis :
- Prise en compte du .htaccess dans Apache
- Activation du mod_rewrite dans Apache
Nous allons donc ouvrir notre .htaccess pour le modifier et nous allons ajouter une ligne comme celle-ci :
Code :
RedirectMatch 301 ^/rep1/.* http://www.site.test/rep2Nous utilisons ici la règle “RedirectMatch 301” pour spécifier qu'il s'agit d'un code HTTP 301 à envoyer aux clients. Un Code HTTP 301 signifie qu'il s'agit d'une redirection permanente, ces redirections sont d'ailleurs généralement mise en cache par les navigateurs web.
Nous utilisons ensuite quelques opérateurs propres ou regexp :
. ^/rep1 : Permet de spécifier que seront prises en compte toutes les URL dont la partie hors domaine (www.site.test) commence par “/rep1″
. rep1/.* : Permet de spécifier “tout”, dans le sens “n'importe quel caractère, en n'importe combien de fois”. Cela permet d'englober tout ce qui peut se trouver dans le répertoire visé. Pour être plus précis, le “.” signifie “n'importe quel caractère” et le “*” spécifie “X fois ce qui précède”. Donc X fois n'importe quel caractère.
A cela suit l'URL valide vers laquelle je souhaite rediriger mes utilisateurs.