Annonce ToutSurTout

Bienvenue sur toutsurtout.biz

Radio TST

Si vous souhaitez participer vous aussi aux discussions sur le forum, il faut vous inscrire ou vous identifier.

Le Thème TST Printemps est maintenant en place.

Les inscriptions sont actuellement OUVERTES.

Message 1 Discussion postée le 22-03-2015 à 09:23:09

Philippe
Avatar de Philippe


Titre: Banni
Avancement: Niveau 3
Date d'inscription: 26-09-2009
Messages: 3 662

Redirection de tout un répertoire en .htaccess

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/rep2

Nous 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.


https://www.world-lolo.com/images/uploads/image.num1445754529.of.world-lolo.com.jpg
Des stades aux entrées payantes sont pleins de gens qui pensent que ceux qu'ils applaudissent sont trop payés, et les bibliothèques à l'entrée gratuite sont vides des gens qui pensent que les livres sont trop chers ...