Les pages ont bougé, informer le visiteur sans le dire

En réalité, sur mon site web, a nombre important de pages ont bougé, tourné, viré au cours de l’année écoulée. De plus certaines pages sont situées à des endroits tellement enfoncés que le chemin pour y accéder commence à devenir insupportable à taper au clavier.

La solution à ces problèmes semble bien résider dans l’emploi d’un service de redirection de page. Dans Apache (le serveur web sur lequel fonctionne roumazeilles.net), cela passe par l’écriture d’une ou plusieurs commandes dnas le fichier .htacess. Voyons comment cela marche.

Il faut commencer par vous donner une première idée de ce que ce fichier discret peut vraiment faire. Etonnament, depuis un seul emplacement, il fournit toute une collection de services (y compris l’autentification, par exemple), et il devient facile de rediriger d’une adresse à une autre.

Voici une page qui vous donnera des détails et des exemples à propos de la redirection par .htaccess.

L’avantage est qu’en quelques instructions, il est possible d’en cacher toute la complexité aux visiteurs.

Redirection d’une page

J’avais plusieurs pages qui étaient installés – initialement – dans le répertoire racine de la structure de mon site web. C’était bien pratique quand il n’y avait que quelques fichiers dans le site. Mais, aujourd’hui, il y a des milliers des fichiers et ce serait folie que de les laisser tous à la racine du site. Néanmoins, les vieux chemins d’accès sont retenus sur des sites, des liens, des moteurs de recherche. La solution : Déplacer tous ces fichiers dans leur propre répertoire et ajouter une redirection.

Exemple : fichiers shareware (les pages qui décrivent encore ce vieux business de vente de logiciel – utilisant le modèle d’affaire shareware).

Le code que j’ai utilisé (dans le fichier /.htaccess) :

Redirect 301 /ygrep.htm http://roumazeilles.net/ygrep/ygrep.php
Redirect 301 /bitlist.htm http://roumazeilles.net/ygrep/bitlist.php
Redirect 301 /clusterv.htm http://roumazeilles.net/ygrep/clusterv.php

Redirection de tout un répertoire

Je voulais simplifier le chemin d’accès aux pages WordPress (elles ont un chemin d’accès plutôt long dans le style de http://www.roumazeilles.net/news/fr/wordpress/category/inclassable/ et je souhaitais le réduire à http://www.roumazeilles.net/fr/category/inclassable/ (qui serait un progrés notable, n’est-ce pas ?).

Le code que j’ai utilisé (dans le fichier /.htaccess) :

Redirect 301 /fr http://roumazeilles.net/news/en/wordpress

Je voulais encore déplacer un paquet de fichiers d’un endroit à un autre (dans un mouvement de traduction de l’anglais vers le français). Masi, il y avait déjà un trafic important en direction des pages initiales et je ne souhaitais pas le perdre ou le détourner.

Le code que j’ai utilisé (dans le fichier /.htaccess) :

RedirectMatch 301 /photo/(.*)\.htm$ http://roumazeilles.net/photo/en/$1.php

Conseil complémentaire

Souvenez-vous que votre serveur Apache a besoin de pouvoir accéder à ce fichier de manière interne. Le conseil habituel est de ficer les droits d’accés par la commande suivante :

chmod 664 .htaccess

Comme le serveur web cherche toujours en plusieurs emplacements différents avant de décider quelle redirection adopter, il est vivement conseillé de grouper toutes les commandes de redirection à un seul endroit (le fichier .htaccess dans le répertoire racine du site web). Cela réduit légèrement la charge de travail pour votre serveur web en lui évitant de chercher partout pour trouver les commandes nécessaires.

De plus, la syntaxe du fichier .htaccess dans les répertoires locaux devient parfois un peu complexe à cause de la nécessité d’utiliser des chemins d’accés relatifs.

Enfin, un dernier conseil : .htaccess peut être utilisé pour faire de l’autentification. Néanmoins, c’est légèrement moins sûr que de le faire directement depuis la configuration du serveur (parce que le fichier .htaccess peut facilement devenir lisible par tous les visiteurs alors qu’il contient tout de même des informations confidentielles – des mots de passe, même s’ils ne sont pas toujours en clair).