Redirections 301 de vos anciennes urls

Votre url ne vous plaisez plus, vous avez décidé de la modifier. Oui mais sans perdre le référencement que celle-ci avait engendrée, c’est pourquoi vous avez choisi la fameuse redirection 301 qui indique aux moteurs (notamment notre cher ami Google) que votre page a définitivement « déménagée ».

Il existe différentes façons de réaliser cette redirection 301 :

  • via le htaccess
  • via le langage de programmation utilisé

Htaccess

Le fichier .htaccess est la solution de base et à mon sens la plus propre car interprétée avant toutes autres choses.

Pour cela vous pouvez réaliser la redirection 301 de 3 manières différentes. Si votre url est de la forme http://www.mon-site.com/mon-ancienne-url, le plus simple est d’utiliser :

RedirectPermanent /mon-ancienne-url http://www.mon-site.com/ma-nouvelle-url

Si votre url est de la forme http://www.mon-site.com/mon-ancienne-url mais que cette dernière sera réécrite pour que le moteur de votre site puisse la comprendre, vous ne pouvez plus utiliser la méthode ci-dessus mais celle-ci :

RewriteRule ^mon-ancienne-url(.*)$ http://www.mon-site.com/ma-nouvelle-url.html$1 [QSA,L,E,R=301]

Enfin si votre url contient des paramètres (indications placées derrière le ? de l’url) déterminants pour la redirection vous pouvez utiliser la méthode qui suit :

RewriteCond  %{QUERY_STRING} ^le-parametre-a-matcher$
RewriteRule ^le-nom-du-fichier-execute\.son-extension$ http://www.mon-site.com/ma-nouvelle-url [L,E,R=301]

Remarque 1 : RedirectPermanent n’utilise pas d’expressions régulières donc pas besoin d’échapper les caractères spéciaux (« . », « ? », …). Cependant RewriteCond et RewriteRule utilisent tous les deux les expressions régulières donc pensez bien à échapper vos caractères spéciaux avec « \ » devant.

Remarque 2 : Suivant où est placé votre site internet et votre configuration de serveur vous devrez peut-être ajouter ces trois lignes :

Options +FollowSymLinks
RewriteEngine On
RewriteBase /sous-dossier-du-site/

Le langage de programmation utilisé

Une seconde solution consiste à laisser « passer » la page aux niveaux du htaccess pour mieux la rediriger lors de votre première instruction du langage que vous utilisez (Ruby on Rails, PHP, …). Nous vous indiquerons ici 2 exemples, en Ruby on Rails et en PHP.

Ruby on Rails

Le framework Ruby on Rails permet, entre bien d’autres choses, de réaliser ces redirections 301. Il suffit pour cela d’indiquer l’ancienne url dans les routes et de l’envoyer vers une action de votre contrôleur qui redirigera la page de façon élégante en 301 (3 manières possibles suivant les cas).

Dans le fichier routes.rb indiquez :

map.connect '/mon-ancienne-url',
:controller => 'mon-controller-s', :action => 'redirector', :id => '/ma-nouvelle-url'

Attention à l’ordre des routes pour que celle-ci soit bien prise en compte.

Puis dans votre contrôleur indiquez l’action redirector :

ou encore :

ou bien :

PHP

Pour le php, le système est légèrement différent pas de routes donc il faut placer le code qui va suivre avant toutes insertions de code HTML, au risque de ne pas pouvoir effectuer la redirection 301.

Pour cela le mieux est de se placer juste après l’ouverture de la balise php et d’insérer dans votre condition (et oui à vous de regarder l’url pour savoir si vous devez la rediriger ou pas et vers quelle nouvelle adresse) :

ou bien :

La deuxième écriture étant plus complète que la première.

Voilà bon courage.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.