Archive pour le mot-clef ‘apache’

Migrations et redirections…

Suite à une petite demande d’Alain, voici une explication du comment je suis passé plus ou moins en douceur d’une ancienne URL à la nouvelle. Pour faire de la redirection, il existe plusieurs méthodes plus ou moins propres en fonction de ce que l’on veut faire ou au contraire éviter de faire.

Méthode 1 :
Je prends une page HTML vierge et entre les balises head, je place une balise meta du genre :
<http-equiv="refresh" content="0; url=http://www.monsite.com/index.html">

Cette méthode fonctionne mais ne concerne qu’une seule page. C’est en fait un simple rafraichissement vers une nouvelle adresse.

Méthode 2 :
La même en couleur, en utilisant le javascript avec une commande du type :
window.location.replace("http://www.monsite.com/index.html");

L’avantage de cette méthode, c’est qu’elle permet de renvoyer une URL calculée… côté client. Les gros inconvénients, c’est que justement, tout se passe côté client, que c’est pas top au niveau accessibilité et que javascript est désactivé sur environ 5% du parc. Bagatelle, les moteurs de recherche ne pourront pas voir la redirection non plus.
Je profite du sujet pour signaler aux petits malicieux qui sont en train de se dire « je vais truffer une page de mots clés et renvoyer les vrais internautes vers une autre », attention, vous jouez avec le feu ! Si un moteur s’aperçoit de la supercherie, c’est le bannissement définitif.

Méthode 3 :
On peut aussi envisager un renvoi vers une URL différente via les scripts serveurs.

En php, on aura quelque chose du genre :
header("HTTP/1.1 301 Moved Permanently");
header ("Location: http://www.monsite.com");
exit();

En ASP, ça donnerait :
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.monsite.com"
Response.End

Le gros avantage d’une telle méthode, c’est que l’on voit apparaître le Moved Permanently qui permet de signaler aux moteurs de recherche qu’il faut mettre à jour le lien vers la nouvelle adresse. L’inconvénient, c’est qu’il faut traiter chaque page, ou écrire un script un peu sophistiqué.

La méthode ultime
(selon ce que l’on veut faire) :
Sur un serveur Apache, vous avez en standard, la possibilité d’utiliser des fichiers .htaccess. Le .htaccess permet entre autre de sécuriser des dossiers, de faire de la réécriture d’URL, mais en fait, en regardant bien, il sait faire un tas d’autres choses (page d’erreur personnalisée, etc). C’est parmi ces diverses utilisations possibles que l’on trouve le RedirectPermanent, qui renvoi un code 301 au navigateur.

L’écriture est assez simpliste :
RedirectPermanent / http://www.monsite.com/

Là, en une ligne bien placée, on redirige un fichier, un dossier, ou tout un domaine en faisant suivre son référencement. La ligne rêvée pour la grosse feignasse que je suis !

Pour finir, pour mon blog, comme je passais de la version 1 à la beta 2, il ne me manquait plus que le petit plugin de Pep pour rediriger automatiquement les URL modifiées entre les deux versions et le tour était joué.