Redirection 301
Portrait Olivier Duffez

Olivier Duffez

Créateur de WebRankInfo,
consultant en référencement

Le guide des redirections pour le référencement

Il arrive fréquemment que, sur un site web, des pages web disparaissent ou changent d'adresse. Lorsque cela arrive, il est nécessaire d'en aviser les moteurs afin de leur indiquer la marche à suivre et notamment leur soumettre la nouvelle adresse d'une page déjà référencée (et parfois bien positionnée). Or il existe plusieurs façons de mettre en place cette signalisation, certaines méthodes étant à éviter. Voici donc un tutoriel complet expliquant comment mettre en place une redirection efficace pour votre référencement...

Article mis à jour le 11/03/2015, publié initialement le 05/03/2010

Sommaire :

  1. L'importance des redirections
  2. "Redirection" meta refresh
  3. Redirection JavaScript
  4. Redirection PHP
  5. La redirection 301
  6. La redirection 302
  7. Supprimer définitivement des pages
  8. Pour aller plus loin...

Note : Cet article complète mon article d'initiation aux différents types de redirections.

Apprendre à gérer les redirections de pages
Tuto redirection d'URL pour le référencement (SEO)

Introduction

Il est bien rare que l'on habite au même endroit pendant toute sa vie : régulièrement, on est amené à déménager. Il faut alors préparer ce changement, et penser à prévenir tous ceux qui connaissaient l'ancienne adresse, pour qu'ils envoient désormais le courrier à la bonne adresse. Pour gérer tous les cas oubliés, on utilise souvent un service de la Poste qui redirige tout le courrier de l'ancienne vers la nouvelle adresse, pendant une période donnée.

Il en est exactement de même sur le web : il est bien rare qu'une page web ne change jamais d'adresse (URL). Parfois même, c'est tout un site qui change d'adresse. Ces perpétuels changements gênent les internautes qui ont du mal à retrouver leurs pages favorites (bookmarks) ; ils posent problème également aux moteurs de recherche qui parcourent le web pour indexer les pages.

Les standards du web ont bien entendu prévu ce cas de figure et mettent à disposition des webmasters un dispositif tout à fait similaire à celui fourni par la Poste : les redirections. Le principe est tout simple : si un internaute tente d'accéder à une page pour laquelle le webmaster a prévu une redirection, son navigateur lui affichera la nouvelle page au lieu de l'ancienne, sans même qu'il ne s'en rende compte (nous verrons qu'il y a des exceptions).

Utilité d'une bonne redirection

Pour que les robots des moteurs de recherche interprètent correctement la redirection, il faut que l'entête HTTP envoyé avec la page corresponde au statut de cette dernière (l'entête HTTP est envoyé par le serveur web avec chaque page, il contient des informations sur la page utilisées par les navigateurs ou les robots ; vous pouvez utiliser mon analyseur d'entête HTTP).

Voici un exemple d'en-tête (pour le site www.lemonde.fr) :

HTTP/1.0 200 OK
Server: Apache
Content-Length: 150654
Content-Type: text/html
X-Auth-Control: mod_auth_lemonde
ETag: "33737b-18787-48689d68"
Cache-Control: max-age=40
Date: Mon, 30 Jun 2008 08:55:32 GMT
Connection: close

Le code renvoyé ici a une valeur de 200 (première ligne), signifiant que "tout est OK".

Si une page a changé d'emplacement dans votre site, il faut que l'ancienne URL fasse une redirection vers la nouvelle en utilisant un entête HTTP qui précise que cette page a changé définitivement d'adresse (code 301 ou "redirection permanente"). Cela permettra au robot de ne plus venir indexer l'ancienne URL, et de mettre à jour son index en affectant la nouvelle URL à la page.

Si vous ne mettez pas de redirection depuis l'ancienne URL, le robot obtiendra une erreur 404 et ne sera pas forcément au courant de la nouvelle adresse. Dans ces conditions, vous risquez de rester des mois avec un site mal indexé...

Les différents types de redirection

On distingue deux grandes familles de redirections :

  • Les redirections serveur
  • Les redirections client

Redirections serveur

Les redirections serveur sont entièrement gérées par le serveur web, et non par le logiciel client (le navigateur). Si vous souhaitez optimiser votre référencement, utilisez uniquement des redirections serveur.

Vous pouvez faire une redirection serveur soit par des règles de redirection (fichier .htaccess sur Apache, décrit plus loin dans cet article) soit dans votre code (PHP, .Net, etc.).

Redirection PHP

Pour faire une redirection en PHP, il suffit d'utiliser la fonction header. Attention toutefois, il faut savoir 2 choses :

  • Le code de redirection doit être en tout premier, avant tout envoi de donnée au client (donc avant tout bout de code HTML, y compris un simple espace ou un saut de ligne)
  • Par défaut la fonction header("Location") fait une redirection temporaire (302), il faut donc la faire précéder d'une ligne qui précise le code HTTP 301

Exemple de code PHP pour rediriger une URL en 301 :

header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.example.com/nouvelle-page.htm");
exit();

Il existe 2 types de redirection serveur :

  • Les redirections définitives ou permanentes (code 301)
  • Les redirections temporaires (code 302)

Redirection 301 (redirection permanente)

Si vous déplacez une page dans votre site de manière définitive, il faut absolument utiliser une redirection 301. En PHP, vous pouvez par exemple utiliser ce code tout en haut du fichier PHP situé à l'adresse de la page ayant bougé (si vous n'utilisez pas PHP, voir la suite de cet article) :

header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.example.com/nouvelle-page.htm");
exit();

Les moteurs de recherche interprètent bien cette redirection, et mettent à jour automatiquement leur index en remplaçant l'ancienne URL par la nouvelle. Cela dit il peut se passer plusieurs semaines avant que ce soit pris en compte.

Pour accélérer les choses, vous pouvez essayer une ou plusieurs de ces méthodes :

  • se débrouiller pour faire des liens vers les pages avec leur nouvelle URL, depuis des pages populaires (exemple : page d'accueil)
  • partager les nouvelles URL sur les réseaux sociaux (sur Twitter, Facebook, Google+ et les autres)
  • envoyer à Google et Bing un sitemap constitué de la liste des nouvelles URL
  • faire des pings aux moteurs pour signaler les nouvelles URL

Redirection 302 (redirection temporaire)

Si de manière temporaire une page, un répertoire ou même un site est inaccessible (pour maintenance par exemple), il peut être intéressant de définir une redirection vers une autre page (ou site) le temps que la maintenance soit terminée. Dans ce cas, il faut utiliser une redirection de type 302 :

header("Status: 302 Moved Temporarily", false, 302);
header("Location: http://www.example.com/page-temporaire.htm");
exit();

Les moteurs de recherche n'interprètent pas tous cette redirection de la même façon. En règle générale, ils ne suppriment par de leur index la page qui est redirigée ; par contre ils associent à la page cible les caractéristiques de la page de départ. Ceci peut avoir de fâcheuses conséquences puisqu'un webmaster mal intentionné peut mettre en place sur son site une redirection 302 vers une page populaire, attendre que les moteurs considèrent que les 2 URL correspondent à la même page, puis supprimer la redirection pour mettre en place une page standard, bénéficiant alors parfois du PageRank et des backlinks (liens entrants) de la page "piratée".

Ce problème de page hijacking est bien connu des référenceurs et des moteurs de recherche. Yahoo avait utilisé à partir de l'été 2005 une parade en considérant qu'une redirection 302 entre 2 pages de domaines différents doit être interprétée comme une redirection 301 (ce qui supprime tout intérêt pour les pirates).

De très nombreux webmasters utilisent des redirections 302 en pensant bien faire, alors qu'ils devraient utiliser une redirection 301. C'est le cas par exemple de certains annuaires, qui au lieu de faire des liens "en dur" vers les sites inscrits (un lien en dur est un lien classique et non une redirection), font des redirections 302. Il y a alors parfois des confusions sur certains moteurs entre la page de redirection sur l'annuaire et celle du site inscrit (dans les résultats de recherche, l'URL du site de l'annuaire peut remplacer celle du site inscrit).

Il est déconseillé de s'inscrire dans de tels annuaires, surtout si votre site est récent. Vous pouvez utiliser mon outil de détection des redirections

Redirections client

Redirection par balise META Refresh

La redirection est définie par la balise META http-equiv="Refresh". Elle donne l'ordre au navigateur de rediriger l'internaute vers une URL spécifiée au bout d'un certain nombre de secondes. En réalité ce n'est pas à proprement parler une redirection...

Exemple (redirection vers la page "nouvelle-page.html" au bout de 5 secondes) :

<meta http-equiv="Refresh" content="5;URL=nouvelle-page.html">

Pour le référencement : il ne faut pas l'utiliser ! En effet, cette balise a trop souvent été utilisée en fixant le nombre de secondes à zéro, en général pour faire une page satellite. A proscrire si possible (nous avons rarement eu vent de problèmes liés à l'utilisation de ce type de redirection, mais il est de toutes façons préférable de passer par une redirection de type 301).

Redirection JavaScript (ou tout autre langage côté client)

La redirection est définie par une fonction JavaScript qui modifie l'URL de la page à afficher, sans modifier l'entête HTTP.

Exemple :

<script type="text/javascript">
<!--
window.location.replace("http://www.example.com/une-page.htm");
-->
</script>

Pour le référencement : il ne faut pas l'utiliser ! Sauf exception, les robots ignorent le JavaScript, ils ne suivront donc pas une telle redirection. D'autre part, ce type de redirection est également souvent le "signe" d'une page satellite, technique de plus en plus dangereuse en rapport à la "chasse au spam" des moteurs. A ne surtout pas utiliser donc !

Cas des pages ayant disparu de manière définitive

Si vous supprimez une page sur votre site mais que vous n'avez pas de nouvelle page qui la remplace, vous avez le choix entre deux options :

  1. Soit faire supprimer définitivement cette page de l'index des moteurs.
  2. Soit rediriger cette page vers une page d'explication (ou la page d'accueil du site).

Pour supprimer une page définitivement, le plus simple est de renvoyer un code HTTP 410 ("ressource plus disponible"). Si vous ne faites rien de spécial, un code 404 sera renvoyé, et les robots reviendront pendant longtemps voir si cette page est toujours introuvable (code 404). En PHP, vous pouvez par exemple utiliser ce code tout en haut du fichier PHP situé à l'adresse de la page supprimée :

header("Status: 410 Gone", false, 410);
exit();

Ou, pour rediriger une page supprimée vers une page d'explications :

header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.example.com/explications.htm");
exit();

Utiliser des directives sur le serveur (redirection .htaccess ou PHP)

Configurer une redirection dans le fichier .htaccess

Ecrire un petit code PHP (ou autre langage serveur) au début de chaque page supprimée ou déplacée peut vite devenir fastidieux. Il est donc souvent plus efficace de définir les redirections directement sur le serveur., au travers d'un fichier nommé ".htaccess". Voici quelques exemples pour le serveur Apache... Notez qu'il faut mettre un ou plusieurs espaces (peu importe le nombre) entre la directive, la page à rediriger et la page redirigée, et qu'il ne faut pas aller à la ligne.

Il y a plusieurs façons de gérer une redirection 301 dans le .htaccess :

  • s'il s'agit de rediriger une URL précise vers une autre URL, alors utilisez la directive RedirectPermanent comme dans les exemples ci-dessous. Vous pouvez aussi utiliser (sans les guillemets) "Redirect Permanent" ou "Redirect 301", ce sont des directives également reconnues.
  • si vous avez besoin de rediriger plein d'URL qui ont un format similaire, alors utilisez une règle de réécriture d'URL avec la directive RewriteRule comme dans les exemples ci-dessous.

Exemples de code de redirection .htaccess

Rediriger de manière définitive la page /test/actu.html vers la page /actualites/ :

RedirectPermanent /test/actu.html  /actualites/

Rediriger de manière définitive le répertoire /articles (et toutes ses pages) vers le répertoire /actualites/articles/ :

RedirectPermanent /articles   http://www.example.com/actualites/articles

Autre façon de faire :

RewriteRule /articles  /actualites/articles [R=301]

Rediriger de manière temporaire le répertoire /outils vers la page /maintenance.htm :

RewriteRule /outils  /maintenance.htm [R=302]

Ca n'a pas grand chose à voir avec les redirections mais voici comment définir une page d'erreur 404 personnalisée :

ErrorDocument 404   /erreur-404.php

Attention, ne mettez surtout pas une adresse commençant par http sinon le code serait 302 au lieu de 404. Le code suivant n'est pas bon :

ErrorDocument 404 http://www.example.com/erreur-404.php

Conseils pratiques pour le fichier .htaccess

Le plus simple est ensuite d'insérer ces lignes dans un fichier nommé .htaccess situé à la racine de votre site.

Vous pouvez également utiliser un fichier .htaccess dans chaque répertoire, et n'y indiquer que ce qui concerne le répertoire en question (et éventuellement ses sous-répertoires).

Attention : le nom de ce fichier est particulier : il n'a pas de nom mais uniquement une extension (si on raisonne avec la logique Windows...). Pour créer ce fichier, ouvrez un éditeur de texte (Notepad fera l'affaire) et enregistrez-le sous le nom htaccess.txt ; ensuite, une fois que vous l'aurez transféré par FTP sur votre site, utilisez le logiciel de FTP pour le renommer en .htaccess uniquement.

Attention également : en cas d'erreur de syntaxe à l'intérieur du fichier, vous pouvez bloquer entièrement votre serveur (erreur 500). Dans ce cas le mieux est d'annuler les derniers changements, de remettre en ligne l'ancien fichier .htaccess et de réfléchir à ce qui peut causer problème.

Si vous avez accès au serveur (serveur dédié et non mutualisé), il est possible de définir ces directives dans le fichier de configuration d'Apache directement (httpd.conf) ; ceci dépasse le cadre de cet article et ne sera donc pas détaillé ici.

Conclusion

Un site web est en perpétuelle mutation. Il est quasiment certain qu'un jour ou l'autre vos pages web changent d'adresse ou disparaissent. Pour ne pas perdre le bénéfice d'un référencement, vous devrez absolument prendre en compte ces redirections et signaler aux moteurs de recherche la nouvelle situation. Tout devrait alors bien se passer si vous utilisez notamment les redirections 301 à bon escient, comme indiqué dans cet article. Votre situation, en termes de référencement, ne devrait pas en pâtir et la transition s'effectuer en douceur... Raison de plus pour apporter le plus grand soin à cette procédure...

Quelques adresses utiles concernant les redirections

Si vous avez des questions sur ce tuto redirections, n'hésitez pas à les poser dans les commentaires ou sur le forum.

Image : © KonstantinosKokkinis - Fotolia.com

Cet article vous a-t-il plu ?

Note : 4.8 (8 votes)
Cliquez pour voter !

125 commentaires

Fabrice

Bonjour,
Le premier hacking que j'ai eu était sur des .htaccess modifiés.
Le deuxième hacking était différent et je ne trouvait pas ce qui avait changé.
Depuis, je me suis rendu compte qu'un fichier a été ajouté et faisait la redirection.
Après suppression, j'ai retrouvé le site.
J'ai continuer à sécuriser le blog (avec Better WP Security, changement de mdp). On verra bien s'il faut aller plus loin, où si c'est suffisant.
Fabrice

Aisne Numérique

Bonjour,

Si ton fichier .htaccess a été modifié, il y a sans doute une date de modification sur ce fichier. Il est important de savoir à quel moment le fichier a été modifié afin de raccorder cet indice a une manipulation d'installation effectuée pendant la même période.

Fabrice

Bonjour,

Pour ma part, je souhaiterais supprimer une redirection plutôt que d'en ajouter.
En effet, mon site fait l'objet de redirections malveillantes depuis quelques jours.
La semaine dernière, c'était des .htaccess modifiés.
Aujourd'hui, j'ai droit a des "redirection META refresh".
Comment ce code d'en tête est-t-il crée ? (par WordPress)
C'est mon site (fichiers ftp) ou ma bdd qui est vérolée ?
Je ne vois pas de modification récente dans mes fichiers ftp. Du coup, cela vient peut être de la bdd ?
Si c'est cela, je changerai le mdp, mais dans un premier temps, il me faut la nettoyer. Quel pattern rechercher?
Merci d'avance pour toute aide.
Fabrice

yvansurf

Merci pour ta réponse.
En fait, je ne cherche-pas une audience large. Présent sur 3 forums spécifiques, correspondant à mon site, l'audience est ciblée d'entrée.
Ma seule "coquetterie" serait que diaporama-passion.fr s'affiche sur les pages ouvertes et non imagine3.1cd1.com, où est redirigé le site.
Le premier serveur est 1and1 où je suis depuis des années, mais comme je gère plusieurs sites, j'ai déplacé diaporama-passion sur un serveur dédié à une association que nous avons créée à plusieurs.
S'il y a un moyen d'imposer cela tant mieux, sinon ce n'est pas bien important.
Peut être en modifiant les DNS de diaporama-passion!
Bonne soirée.
Yvan

yvansurf

Bonjour
Mon nom de domaine ci-dessus pointe vers un nouveau serveur dont le lien est: http;//imagine.1cd1.com.
De ce fait, c'est ce lien qui s'affiche sur mes pages ouvertes.
Comme faire pour que ce soit le nom de domaine initial qui s'affiche?
Remerciements.
Yvan

Olivier Duffez

@ yvansurf : il faut acheter un hébergement web qui soit sur ton nom de domaine, sinon tu ne peux pas travailler sérieusement le référencement.
Si tu as d'autres questions, merci d'utiliser le forum.

Flore

Une question : que faire des anciennes pages redirigées par le .htaccess ? est-ce qu'il faut les supprimer ou pas (par rapport au référencement ?) Merci

Olivier Duffez

@Flore : si les pages sont redirigées, elles n'existent plus. Je ne comprends pas bien la question

KHchauf

Bonjour,

Que faire lorsqu'une page produit est bien référencée et que le produit est arrêté ou remplacer par un autre?
ex: je vends le produit A et il est en 1er position sur un certain nombre de mots clés. puis ce produit est arrêté et remplacé par le produit B, ce qui oblige à changer complètement la page produit (title, description, etc....) ou en créer une autre mais dans ce cas, comment eviter les erreurs 404?
Le mieux est peut être de modifier la page produit afin d'éviter les erreurs 404.
Qu'en pensez vous?

Merci de votre aide

Olivier Duffez

@ KHchauf : Il faut faire une redirection 301 vers la catégorie la plus proche (c'est mieux que de rediriger vers une autre fiche produit car elle risquerait à son tour d'être supprimée un jour)

Rédacteur Web Freelance

Bonjour,

J'ai récemment changé l'URL d'une page Facebook sans tenir compte de la problématique des backlinks qui dirigeaient vers elle. Est-il possible de faire une redirection de l'ancienne URL Facebook vers la nouvelle pour tous ces liens ? Merci de vos réponse !

Mathias

Je me demande toujours qu'elle est la meilleure solution pour un site e-commerce qui génère bcp de 404 du à son épuisement de stock permanent ?
Faut il rediriger vers la home? (bcp de 301, et pas très pertinent pour l'internaute)
Faut il laisser une page 404 stylisée avec plan du site?
Faut il présenter une page avec le moteur de recherche interne plus en avant?
Faut il Rediriger vers la cat du produit? (pas simple à identifier)

Olivier Duffez

@Mathias : il faut rediriger en 301 vers la page stable la plus pertinente, donc la catégorie mère (ce qui doit être très facile à identifier)

Mr Devis

Bonjour,
Mon site est sous maintenance mais il est toujours accessible pour les internautes. Alors est-il conseillé d'utiliser la redirection 503 ou bien j'utilise la balise le "noindex nofollow" dans robots.txt et par la suite je bloque l’accès de googlebots dans google WMT ?

Olivier Duffez

Mr Devis, mieux vaut créer une nouvelle discussion pour avoir des réponses précises et complètes. Merci !

Angélique

bonjour,

En fait mon problème c'est qu'une pub a fait une redirection sur mon nom de domaine et je n'arrive pas à changer cela. Pouvez-vous m'aider?

J'ai essayé les script pour essayer de rediriger mon site sur ma page index mais rien ne fait.

merci

Angélique

Olivier Duffez

@Angélique : sans l'exemple on ne peut pas répondre. L'idéal serait de lancer une discussion dédiée dans le forum, merci d'avance.

Olivier

Bonjour Olivier,

Voici le contenu de mon fichier .htaccess, voyez vous une erreur ? :

RewriteEngine On

# Show ad
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/posts/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?\.html /index.php?view=showad&adid=$7&cityid=$1 [QSA]

# Ads
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/posts/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?/page([0-9]*)\.html /index.php?view=ads&catid=$3&subcatid=$5&cityid=$1&page=$7 [QSA]
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/posts/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)? /index.php?view=ads&catid=$3&subcatid=$5&cityid=$1 [QSA]

# Ads by cat
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/posts/([0-9]+)([-_][^/]*)? /index.php?view=ads&catid=$3&cityid=$1 [QSA]

# Show event
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/events(/(([0-9]+)-([0-9]+)-([0-9]+)))?/([0-9]+)([-_][^/]*)?\.html /index.php?view=showevent&date=$4&adid=$8&cityid=$1 [QSA]

# Events on date
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/events/(([0-9]+)-([0-9]+)-([0-9]+))/page([0-9]*)\.html /index.php?view=events&date=$3&cityid=$1&page=$7 [QSA]
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/events/(([0-9]+)-([0-9]+)-([0-9]+)) /index.php?view=events&date=$3&cityid=$1 [QSA]
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/events /index.php?view=events&cityid=$1 [QSA]

# Show image
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/images/([^/]+)/([0-9]+)([-_][^/]*)?\.html /index.php?view=showimg&posterenc=$3&imgid=$4&cityid=$1 [QSA]

# Images by user, paged
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/images/([^/]+)/page([0-9]+)\.html /index.php?view=imgs&posterenc=$3&cityid=$1&page=$4 [QSA]

# Top Images, paged
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/images/page([0-9]+)\.html /index.php?view=imgs&cityid=$1&page=$3 [QSA]

# Images by user
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/images/([^/]+) /index.php?view=imgs&posterenc=$3&cityid=$1 [QSA]

# Top Images
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/images /index.php?view=imgs&cityid=$1 [QSA]

# Quick ad/event/image
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/showpost/([0-9]+)([-_][^/]*)?\.html /index.php?view=showad&adid=$3&cityid=$1 [QSA]
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/showevent/([0-9]+)([-_][^/]*)?\.html /index.php?view=showevent&adid=$3&cityid=$1 [QSA]
RewriteRule ^([-]?[0-9]+)([-_][^/]*)?/showimage/([0-9]+)([-_][^/]*)?\.html /index.php?view=showimg&imgid=$3&cityid=$1 [QSA]

# City/Region
RewriteRule ^([-]?[0-9]+)([-_][^/]*)? /index.php?view=main&cityid=$1 [QSA]
RewriteRule ^([-]?[0-9]+)([-_][^/]*)? /index.php?view=main&cityid=$1 [QSA]

# Feed
RewriteRule ^feed/posts /rss.php?view=ads&cityid=0 [QSA]
RewriteRule ^feed/events /rss.php?view=events&cityid=0 [QSA]
RewriteRule ^feed/([-]?[0-9]+)([-_][^/]*)?/posts/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)? /rss.php?view=ads&catid=$3&subcatid=$5&cityid=$1 [QSA]
RewriteRule ^feed/([-]?[0-9]+)([-_][^/]*)?/posts/([0-9]+)([-_][^/]*)? /rss.php?view=ads&catid=$3&cityid=$1 [QSA]
RewriteRule ^feed/([-]?[0-9]+)([-_][^/]*)?/posts /rss.php?view=ads&cityid=$1 [QSA]
RewriteRule ^feed/([-]?[0-9]+)([-_][^/]*)?/events/(([0-9]+)-([0-9]+)-([0-9]+)) /rss.php?view=events&date=$3&cityid=$1 [QSA]
RewriteRule ^feed/([-]?[0-9]+)([-_][^/]*)?/events /rss.php?view=events&cityid=$1 [QSA]

## BEGIN David26's account mod

RewriteRule ^account.html$ /index.php?view=userpanel
RewriteRule ^account.html&action=(.*)$ /index.php?view=userpanel&action=$1
RewriteRule ^login.html$ /index.php?view=login
RewriteRule ^signup.html$ /index.php?view=signup
RewriteRule ^profile-([-0-9]+).html$ /index.php?view=profile&id=$1
RewriteRule ^profile-([-0-9]+)-page-([-0-9]+).html$ /index.php?view=profile&id=$1&page=$2

## END David26's account mod

Olivier Duffez

désolé Olivier mais là le fichier est assez énorme, sans connaître les URL du site ça devient dur.
Merci de lancer une nouvelle discussion dans le forum .htaccess, ça sera plus efficace.

Olivier

Bonjour, et merci pour tous ces conseils!

Pour ma part la redirection 301 ne fonctionne mais pas comme souhaité. Je m’explique :

Quand je veut rediriger

-http://www.example.com/exemple/ vers -http://www.example.com/exemple2

La page -http://www.example.com/exemple est redirigée vers une nouvelle page avec un lien du type : -http://www.example.com/?view=ads&catid=5&subcatid=xx&cityid=-xx

au lieu de -http://www.example.com/exemple2

La redirection 301 ne prends pas en compte l’URL Rewriting présent dans le .htaccess,

Pouvez vous m’aider, svp ?

Olivier Duffez

Le plus efficace serait de nous copier-coller les lignes du .htaccess
et le mieux serait même de créer une discussion dans le forum ! Merci d'avance

Ling-en

Hello,

je viens de migrer mon blog de à vivredesonblog.com.
J'ai fait une redirection 301 de sorte que quand on va sur XXX , on soit dirigé vers vivredesonblog.com.

Mais j'arrive pas à rediriger un article de l'ancienne URL vers l'article vivredesonblog.com/creer-podcast-audio/
Quand je vais sur , ça me mène à .

Merci d'avance pour votre précieuse aide

Ling-en

Olivier Duffez

@Ling-en : indique-nous la règle de réécriture que tu as faite dans ton fichier .htaccess pour gérer cette redirection (ou bien précise-nous comment tu l'as faite)

jeffeau

Ok je vais proposer cela à mon client. Ceci dit pour l'info et si je n'avais pas eu le choix, quelle aurait été la solution. J'avais mis du javascript mais je l'ai supprimé suite à la lecture de votre site. Je me suis donc rabattu sur du flash. Mauvaise idée puisque mon client vient de me dire qu'il n'y voit pas de redirection auto (i-phone bien sur). Merci à vous.

jeffeau

Je me suis mal exprimé ou je n'ai pas donné toute l'info. Mon client a des brevets. Il veut que le nom du produit breveté soit une URL à part entière parce que ses concurrents utilisent le même mot (je ne sais pas comment c'est possible mais admettons) et que cette page redirige sur le site de la société qui est une autre URL bien sur.

Olivier Duffez

Dans ce c-là jeffeau, ce n'est pas une redirection qu'il faut faire, mais laisser le mini-site (d'une page) et ajouter dessus des liens vers le site principal

Collaboratif

Il faut éviter de se compliquer le travail avec des technologies et des bricolages spéciaux.

C'est toujours un peu bancal et le jour ou il y a la moindre petite perturbation le site se retrouve au ban des moteurs de recherche.

En plus avec les navigateurs mobiles les contraintes deviennent étroites et demandent un affichage rapide.

jeffeau

Bonjour,

J'ai acheté un nom de domaine pour un mot unique. J'ai fait une page avec du vrai contenu pour être référencé (j'ai vérifié ça marche très bien) et j'ai fait une redirection à l'aide d'un fichier flash vide contenant seulement une instruction getURl qui redirige sur le bon site. Est-ce correct? J'ai un petit doute sur les machines qui ne supportent pas Flash. Quelle est la bonne solution à votre avis.

Merci à vous.

Olivier Duffez

A quoi ça sert de faire un site d'une page ? Et surtout s'il redirige vers ailleurs ?

pierre

bonjour

Je réalise un refonte totale de mon site. J'ai plusieurs pages que je voudrais rediriger vers la même nouvelle url.
Je souhaiterais savoir quelle ancienneté aura ma nouvelle page : celle de la plus ancienne des pages, la moyenne des anciennes ou alors...

En résumé, est-ce que plusieurs redirections 301 vers une même page depuis des pages à faible popularité peuvent nuire à la popularité de la page qui reçoit les redirections ?

Merci

Olivier Duffez

Non Pierre, je ne pense pas que ces quelques redirections pourront gêner la page qui les "reçoit".

Alexis

D'accord. Je comprend mieux le fonctionnement ainsi. Merci beaucoup :)

Alexis

Bonjour Olivier et merci pour cet excellent tuto.
Comment fait-on pour paramétrer une redirection 301 pour un site de petites annonces ?

Je m'explique, j'ai pour idée de lancer un site web de petites annonces qui laisserait les annonces actives pendant 4 mois puis elles se suppriment automatiquement, j'aimerais faire une redirection automatique vers la catégorie mère pour chaque page qui sera supprimée.

Je sais que ça existe mais étant plus référenceur que développeur, je ne sais pas quel code insérer dans le .Htaccess
Merci

Olivier Duffez

c'est au script qui gère la page annonce de vérifier si l'annonce a été supprimée ou pas, pour faire une redirection serveur si besoin

Rodrigue

Je viens d'utiliser ta méthode pour un ancien domaine avec PR qui pointe maintenant sur mon site et ça marche à merveille.

Merci

Benoist

Merci Olivier, cela marche à la perfection. Je suis ton débiteur

Benoist

désolé...

La redirection marche parfaitement pour l'ensemble du site. est parfaiteemnt redirigé vers

Est il cependant possible de personnaliser certaines redirections ?

exemple : en J'ai 15 pages comme cela que je voudrais rediriger de cette manière. Pour le moment j'ai example2.com/forum/forum/nom-du-form.html ce qui fait un peu spam...

Merci

Olivier Duffez

Pour rediriger example.com/forum-xxx.html en example2.com/forum/xxx.html
et tout le reste de example.com en example2.com/forum/, essaie ce .htaccess dans example.com :

RewriteRule ^forum-(.+)\.html$ http://www.example2.com/forum/$1.html [R=301,L]
RewriteRule (.*) http://www.example2.com/forum/$1 [R=301,L]

Benoist

Merci Olivier, c'est rassurant d'avoir ton avis d'expert.

Je me permet de te solliciter une dernière fois, je sais que tu dois être submergé de commentaires...

Cette régle marche à la perfection. Est il possible de l'affiner pour quelques pages à savoir j'avais comme structure pour mes 15 forums : que j'aimerai transformé en

Il faudrait que je personnalise la 301 pour les 15 forums et ensuite RewriteRule (.*) [R=301,L] pour toutes les autres pages (posts...). Ce serait une sorte de if... mais je ne crois pas que .htaccess permet les conditionnels ?

Mise à Jour : en fait non, j'ai un 404 pour toute les pages sauf pour la home avec RewriteRule (.*) [R=301,L]

RedirectPermanent marche par contre

En te remerciant, très cordialement

Olivier Duffez

désolé mais avec tous tes commentaires je suis perdu. Quelle est ta question précise ?

Benoist

Bonjour, j'aimerai avoir votre confirmation avant d'essayer... Je veux rediriger un forum phpbb3 avec 5000 pages environ installé sur example.com sur un autre site : example2.com/forum/

Est ce que cela suffira de mettre juste cela dans le .htaccess ? :

RedirectPermanent

Pour être bien sur si j'ai , la page sera redirigé vers et ainsi de suite pour toutes les pages ?

Merci par avance

Olivier Duffez

@Benoist : essaie ce code à mettre dans example.com/.htaccess
RewriteRule (.*) http://www.example2.com/forum/$1 [R=301,L]

Fanny Sylvestre

Bonjour

merci pour la réponse rapide !

en fait, je me rends compte que toutes les urls avec accent, espace et autres caractères spéciaux sont problématiques. Impossible de changer quoi que ce soit via le .htaccess. Le problème vient peut-être d'un plugin que j'utilise pour la réécriture des URLs pour générer des URLs propres...

l'url exacte est donc /-huiles-essentielles-aromatherapie-.html%20 sur massage-zen-therapie.com

et la bonne est bien sur sans l'espace à la fin...

Fanny Sylvestre

Bonjour

j'ai une page détectée en erreur dans webmaster tool qui se termine par un espace : ma-page.html%20 et du coup, je n'arrive pas à rediriger cette url via le .htaccess avec un espace en trop vers ma-page.html tout court.

J'ai essayé de mettre un espace à la place de %20, j'ai aussi essayé de mettre l'espace en code html, ça ne fonctionne pas non plus...

si je n'avais pas trop de liens vers cette page, je pourrais contacter chaque webmaster mais là, il y en a vraiment trop.

C'est surement tout bête mais je bloque... bêtement... ^^

Une idée ? Par avance merci.

Olivier Duffez

@Fanny : quelle est l'URL exacte de cette page ? (sans le nom de domaine si tu préfères)

Greg

Merci pour les réponses mais dans mon cas les anciennes pages vont disparaitre donc je ne voit pas bien comment étager les htaccès puisque la requêtre viendra de la base.

exe:

domaine.com/ancien_rep/ancienne_page.html

vers

domaine.com/nouveau_rep/nouvelle_page.html

Je suis obligé de mettre les htaccess dans la racine dans ce cas ?

Autre question: il vaut mieux pointer vers le canonical je suppose ?

Olivier Duffez

Oui on peut mettre les règles de redirection dans le htaccess à la racine

Collaboratif

Trop de règles dans un seul .htaccess peut ralentir le temps d'affichage.

Il est parfois possible d'étager des .htaccess dans différents répertoires. Cela permet de limiter les opérations du .htaccess principal.

Greg

Je commence une migration complète de mon site avec plus de 900 pages à rediriger: est ce qu'il y a une différence fondamentale au niveau du ref à faire cela via serveur (htaccess) plutôt que via pages individuellement ?

Merci pour cet article de qualité.

Olivier Duffez

Si tu peux faire des règles dans un .htaccess ça te facilitera le travail

stanlaurent

ah sympa les modos !!!

stanlaurent

Bonjour, je suis en galère et j'ai du mal à trouver l'info, donc une bonne âme a une minute.

Voilà je suis avec WP et j'aimerais simplifier ma structure, j'ai eu quelques soucis avec des erreurs 404.

Je n'ai aucun problème pour changer les permaliens.

Par contre une fois la nouvelle structure appliquée toutes les pages pointant sur les anciennes adresses (référencement, liens sur d'autres sites, tec) => erreur404

Ma structure actuelle :
"année", "mois", "jour", et "nom_article" sont variables.

J'aimerais mettre en place dans mon htaccess un Redirect permanent pour supprimer les trois premiers dossiers "année", "mois", "jour" et obtenir

Merci par avance,

Olivier Duffez

stanlaurent, pour ce genre de demande ce serait bien plus pratique et efficace de la poser dans le forum. Merci d'avance !

Chasseur immobilier

En espérant que ça n'existe pas trop, il y a quand même pas mal de fonctions basées sur le js...

Galienna

Oui, mais honnêtement le côté client pose des problèmes. Si le javascript est désactivé chez le client, la redirection ne se fera pas!

Mais de toute façon, je doute que votre solution d'hébergement ne permette pas l'utilisation de php, ce serait aussi logique qu'interdire le HTML!

Chasseur immobilier

OK merci
Je ne suis pas sur que mon contrat de base 1 et 1 le permette, je vais le vérifier quand même.
Auquel cas, si j'ai bien compris, il me reste la solution "côte client" avec du js ?

Galienna

D'utiliser le langage serveur, par exemple php avec les header(), comme expliqué dans le tutoriel.

Chasseur immobilier

Quelle est la solution la plus fiable et la plus efficace lorsque l'on ne peut pas utiliser de ficher .htaccess, ce qui est notamment le cas quand on ne dispose pas d'un serveur Apache.

Galienna

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^[^.]+.[^.]+$
RewriteRule ^(.*)$ {HTTP_HOST}/$1 [R=301,L]

RewriteRule ^([a-zA-Z-_]+).php$ $1.html [R=301,L]
RewriteRule ^([a-zA-Z-_]+).html$ $1.php [L]

RewriteRule ^index.php?module=([a-z-]+)&action=([a-z-]+)$ /$1/$2.html [R=301,L]
RewriteRule ^([a-z-]+)/([a-z-]+).html$ index.php?module=$1&action=$2 [L]

RewriteRule ^index.php?module=([a-z-]+)&action=([a-z-]+)&type=([a-z-]+)$ /$1/$2/$3.html [R=301,L]
RewriteRule ^([a-z-]+)/([a-z-]+)/([a-z-]+).html$ index.php?module=$1&action=$2&type=$3 [L]

Et je suis en mutualisé chez OVH, des fois que ça change vraiment quelque chose...

Galienna

Mmh, après divers essais, ça semble être seulement théorique tout ça. Firefox m'insulte gentiment en disant que la page n'est pas redirigée correctement.

Avec des RewriteCond il semblerait possible de résoudre tout ça, mais je patauge totalement avec cette directive.

Olivier Duffez

Il ne devrait pas y avoir besoin de RewriteCond
Donne-nous le code que tu as utilisé dans ton .htaccess

Galienna

Génial merci encore, je file mettre ça en place!

Galienna

Tout d'abord merci pour la rapidité de la réponse!

Donc, le client demande une ancienne adresse, par exemple "www.monsite.fr/index.php?module=global&action=produit"

puis une RewriteRule avec R=301 redirige vers "/global/produit.html" (forme de lien que l'on a sur le site, que l'on veut voir et qui doit être indexé),

et enfin pour que le serveur ait ses paramètres, une RewriteRule qui transforme "/global/produit.html" en "index.php?module=global&action=produit" avec le flag L, c'est ça?

Olivier Duffez

Exactement !

Galienna

Bonjour, et merci pour ce tuto, qui est très clair.

J'ai juste un souci quant à la redirection 301 via .htaccess sur des URL réécrite...

J'ai mis mon URL rewriting en place, tout fonctionne. Après passage sur ce tuto, je me suis dis qu'ajouter un flag R=301 à mes RewriteRule permettrait d'interdire les URL classiques (avec ?param=foo)

Une fois le flag ajouté, j'accède toujours à mes pages donc la réécriture fonctionne, mais je me retrouve avec les URL classiques en barre d'adresse...

Quelqu'un aurait une solution à appliquer au niveau du .htaccess?

Merci

Olivier Duffez

Attention à ne pas mélanger, il faut faire 2 RewriteRule !
Un pour gérer la réécriture d'URL et une autre pour gérer la redirection 301 des vieilles URL vers les nouvelles

eve

Comment doit-on s'y prendre quand on a beaucoup de pages html qui sont supprimées tous les jours ( infos obsolètes) sans être pénalisé par Google si il y a trop d' erreurs 404?

Olivier Duffez

@eve : il faut les rediriger en 301 vers la page la plus pertinente, par exemple la catégorie mère qui leur correspond.

Collaboratif

De manière générale, ce moteur passe suffisamment souvent sur les page pour ne pas se préoccuper d'une accélération.

Si on veut désindexer une page, le noindex dans le robots.txt, ou dans les métas d'une page est normalement radical et touche l'ensemble des moteurs.

L'outil pour les webmasters c'est un peu différent, cela peut accélérer la prise en compte, mais l'information n'a pas vocation a être transmise aux autres moteurs.

Chewee

Non, je pense qu'il est bien encodé.

En fait ma question surtout c'est de savoir comment faire pour que Google se rende compte plus rapidement que mes pages n'existent plus et les désindexe.

En supprimant toutes ces pages, on s'est pris une grosse claque dans les SERPS. Un mal pour un bien je pense étant donné que ces pages n'était vraiment pas pertinentes... J'espère qu'on remontera une fois qu'il aura bien remis à jour son index (mais je rêve peut-être)

debo

@Collaboratif : j'ai pas trop compris où tu voulais en venir, mais la question est plutôt de savoir si ton fichier est correctement encodé, non ?

Chewee

C'est ce que je me disais...
J'ai laissé les anciennes URL dans mes sitemap histoire que Google continue de passer dessus histoire qu'il voit les redirections.

Chewee

Bonjour tout le monde,

Je bloque sur un truc dans la partie concernant sur les redirections 301.

Ca dit que  :
"Les moteurs de recherche interprètent bien cette redirection, et mettent à jour automatiquement leur index en remplaçant l'ancienne URL par la nouvelle. Cela dit il peut se passer plusieurs semaines avant que ce soit pris en compte."

Mon soucis :
Ca dit que "Pour accélérer les choses, vous pouvez essayer une ou plusieurs de ces méthodes :

se débrouiller pour faire des liens vers les pages avec leur nouvelle URL, depuis des pages populaires (exemple : page d'accueil)"

Dans mon cas, j'avais beaucoup de pages pauvres en contenu.
J'ai décidé de retirer ces pages et donc de toutes les rediriger 301 vers une page donnée de mon site avec ce code dans ma page php :

header("Status: 301 Moved Permanently", false, 301);
header("Location: ");

D'après ce que je comprends, pour accelerer la désindexation des anciennes pages, je devrais mettre un lien vers sur la home page de mon site ?

Ce que je ne trouve pas logique, c'est que pour moi il vaudrait mieux mettre des liens vers les anciennes pages (celles supprimées) pour que Google constate la redirection.
Non ?
Comment Google peut voir la liste des pages redirigées en visitant juste la destination ? (surtout que dans mon cas, on parle de milliers de pages...)

Merci d'avance pour vos lumières.

Olivier Duffez

Dans le cas où les pages sont supprimées, c'est différent et plus difficile à faire accélérer. En effet, aucun intérêt de faire des liens vers la page vers laquelle tout est redirigé.

Flo

Merci pour cette réponse, Olivier.

Flo

Bonjour,

dans le cadre de mon activité pro, je reprends plusieurs sites qui ont de nombreux problèmes de pages 404 (sur certains sites, plus de 3,000 pages en 404). Elles sont référencées dans Google alors que, selon les développeurs, elles ne devraient pas l'être et ne devraient même pas exister.

Prenons un exemple parlant : sur des pages affichant les résultats du Loto, Google référence des résultats des années 1450 ou 2036... Elles sont référencées. Certaines n'affichent pas de contenu. D'autres ont sont des 404.

Si je décide de faire le tri et de faire une redirection 410 de toutes ces pages, cela aura-t-il un impact négatif ?

Merci pour vos réponses.

Olivier Duffez

Si ces pages sont indexées, c'est que :
- il y a sûrement eu un lien vers elles ; que ce lien existe encore ou pas ça ne change pas grand chose
- au moins au début elles ont renvoyé un code 200 indiquant qu'elles existaient. Si maintenant elles renvoient un 404 Google peut mettre plusieurs mois avant de les supprimer.

Avant de se débrouiller pour vraiment les supprimer, mieux vaut regarder si elles génèrent du trafic via le SEO et si elles sont utiles à l'internaute. Si c'est le cas mieux vaut corriger et ne pas les désindexer.

Sinon, tu peux les supprimer sans risque. Le mieux est de mettre une balise meta robots noindex ou de les rediriger en 301 vers une page en rapport.
Un 410 n'est pas une redirection et n'est pas très efficace.

Promise

Merci Olivier pour la réponse rapide à mon inquiétude.
Je pense qu'avec la première proposition, je n'éprouverai pas de difficulté à le faire mais la deuxième avec l'utilisation de QSA je ne sais pas comment écrire la règle pour faire la redirection des anciennes pages(index.php?page=$1) vers les nouvelles pages (^([a-z\-]+)\.html$).

Encore une fois merci pour votre générosité.

Promise

Bonjour Olivier,

Tout d'abord je te remercie pour ce bon tuto.
J'ai fait une réécriture de l'URL et ça marche bien. Voici les règles définies dans le fichier .htaccess :

# Article sans numéro de page :
RewriteRule ^([a-z\-]+)\.html$ index.php?page=$1 [L]

# Article avec numéro de page :
RewriteRule ^([a-z\-]+),([0-9]+)\.html$ index.php?page=$1&pg=$2 [L]

J'aimerais à présent faire une redirection 301 de mes anciennes page "index.php?page=$1" vers les nouvelles pages dans le fichier .htaccess mais je ne sais pas comment procéder. Peux-tu m'aider? Au fait je ne veux plus que les anciennes pages soient toujours gardées dans la barre d'adresse. Merci de me répondre.

Olivier Duffez

Tu peux le traiter directement dans ton fichier index.php, avant tout envoi de caractère vers la sortie.
Sinon essaie une règle de réécriture avec index.php et l'option QSA (Query String Append)

etienne

Excellent. Ce qu'il me fallait. Merci

baptiste REY

je pense qu'il serait utile de préciser au niveau de :
Redirection PHP
Pour faire une redirection en PHP, il suffit d'utiliser la fonction header. Attention toutefois, il faut savoir 2 choses :
Que Le code de redirection doit être en tout premier, avant tout envoi de donnée au client (donc avant tout bout de code HTML)et MEME LES ESPACES ET LES SAUTS DE LIGNE.

Figures Ambigues

Désolé, ma question va paraître stupide à plus d'un, mais je n'ai encore jamais écrit une redirection 301! Et j'aimerais le faire sans me planter.
Malgré la rigueur de l'énoncé, je n'arrive pas à imaginer le résultat du premier exemple .htaccess (cité ci-dessous) :

"Rediriger de manière définitive la page /test/actu.html vers la page /actualites/ :
RedirectPermanent /test/actu.html "

La page "/actu.html" était donc dans un répertoire nommé "/test/". Avec la redirection cette même page sera-t-elle dans :
1)
2)

1) Si la bonne réponse est 1, et je suppose que le répertoire "/test/" existe toujours, mais ailleurs et débarassé de la page "/actu.html".
Mais dans ce cas, on ne devrait pas dire que la page a changé de page mais de répertoire.
2) Si la bonne réponse est 2, on utilise un dossier "/actualités/" (que ce dernier soit ancien ou nouveau) pour contenir le répertoire déjà existant "/test/"
Mais dans ce cas, on ne devrait pas dire que la page a changé de page mais que son chemin d'accès est modifié.

Comme je me noie dans un verre d'eau, merci d'avance pour une réponse aussi simple que possible : 1 ou 2 ?

Olivier Duffez

La réponse est "la page sera à l'adresse http://www.example.com/actualites/"

Mary

D'accord avec Samuel, la 301 protège de la Sandbox, voire même de certaines pénalités !

coiffure

Merci pour ce dossier très complet!
C'est toujours bon d'avoir de genre d'infos avec soi si jamais des problèmes surviennent et je ne manquerai pas de les utiliser si cela devait m'arriver!
A bientôt.

chambre hôtes Chauffailles

Parfait cet article ! Tout ce dont a besoin pour la redirection, en résumé, mais très complet !
Merci de nous le refaire partager.

Aisne Numérique

C'est intéressant, cela me semblait impossible de sortir de la sandbox en dehors du délai habituel.

J'aurais pensé que la redirection 301 avait plus d'effet sur des "malus" et donc en supprimant les erreurs on supprimait ces malus rapidement.

J'ai rarement vu sortir un site de la Sandbox en moins de 4/6 mois, je suis donc curieux.

Samuel

Merci pour ces infos, je tiens à souligner que la redirection 301 est également probante pour sortir un site de la sandbox!

Fred

Olivier,

Merci pour ta réponse rapide !
J'ai bien vérifié la redirection et elle renvoie bien une 301.

Il n'y a donc plus qu'a attendre.

Fred.

horoscopus

La mise a jour de cet article porte sur la création de liens (classiques ou sur les réseaux sociaux) pour accélérer la prise en compte des redirections c'est bien ça ?

Olivier Duffez

@horoscopus : oui, ainsi que quelques autres ajouts, par exemple des explications plus détaillées sur le fichier .htaccess, les variantes à RedirectPermanent

développeur web

Wahoo, un article très complet sur le sujet. Pour ma part je privilégie au mieux la redirection sur le .htaccess, coté serveur donc. Les redirections en html grâce à la balise meta quand à elles ne me servent jamais. Un grand merci et à bientôt.

Fred

Bonjour,

J'ai testé la redirection avec une RewriteRule et je viens de voir que Google (outils webmasters) me remonte des pages avec des "Balises titres en doubles). Or ce sont les pages que j'ai redirigées.

voici un exemple de redirection que j'ai effectué :

RewriteRule ^test1.html$ /mon-test1.htm? [R=301,L]

Est-ce normal ?

Merci,
Fred.

Olivier Duffez

Fred : d'abord, vérifie que la redirection renvoie bien un 301.
Ensuite, il faut laisser du temps à Google qui doit d'abord constater la redirection (son crawler doit revenir voir les anciennes pages) puis la prendre en compte (ça peut prendre plusieurs semaines)

Benoist

Bonjour Olivier,

je me permet de te poser une question un peu technique sur les redirections : j'ai acquis un nom de domaine sur lequel je souhaite créer le site de mon entreprise. Il s'avère qu'il y a 5 ans ce nom de domaine existait, ce que je ne savais pas, et il y a des dizaines de sites qui font des liens vers près de 100 pages de mon nom de domaine (c'est page n'existe plus, elles sont de l'ancien site). J'ai pu les voir grâce au plugin redirect dont on parle plus haut. Les anciennes urls sont en anglais et mon site est en français, je ne peux donc pas les récupérer. Puis je rediriger toutes ces pages vers la home page de mon site (dans l''espoir de récupérer un peu de pr)sans risque ? Le recommandes tu ?

Merci pour tes précieuses lumières,

Cordialement

mariedescarres

Bonjour,

Votre analyseur d'entête m'apporte la réponse suivante :
HTTP/1.1 500 Internal Server Error
Date: Tue, 20 Dec 2011 21:17:56 GMT
Server: Apache
Connection: close
Content-Type: text/html

Qu'est ce que cela signifie ?
En vous remerciant pour votre réponse
Marie

Olivier Duffez

500 signifie que le serveur n'a pas pu répondre (il est bloqué)
sans connaître de quelle URL il s'agit je ne peux pas en dire plus (le pb peut venir de mon outil)

Laure

Salut,

Je travaille sur la redirection d'URL.
J'ai plus de 2000 URL à rediriger. Ce que je souhaiterais savoir, c'est comment faire une redirection super rapide.
Toutes mes anciennes URL sont sur mon document excel. Comment en quelques minutes faire la redirection de toutes ces URL?
Merci d'avance :)

Roland

Dans Google Webmaster Tools, Google propose une aide très intéressante à lire sur la redir 301, certains pourraient même extropoler en disant que Google encourage le 301...:)

Elias

D'accord je comprend mieux merci pour votre réponse !

Collaboratif

Dans l'onglet "Outils" de WordPress il y a l'outil "Redirection".

Celui-ci est utile pour réorienter les visiteurs dans ce type de cas.

Je ne suis pas certain qu'il soit disponible pour l'ensemble des thèmes, mais il est bien pratique.

Olivier Duffez

l'outil redirection n'est présent que si on a installé le plugin redirection pour wordpress

Elias

Il s'agit de pages qui ont été supprimé définitivement, leur URL a donc complètement disparu (cela fait déjà des mois mais elles apparaissent toujours en erreur 404).

Olivier Duffez

Pour les faire désindexer tu peux aller dans Google Webmaster Tools.
Cela dit, tu peux aussi les rediriger (en 301) vers des pages existantes similaires. Il y a le plugin "redirection" qui est très simple et efficace.

Elias

Bonjour, je n'ai pas compris la redirection d'une page disparue.
Vous dites qu'il faut inscrire le code "header("Status: 410 Gone", false, 410);
exit();" en haut du fichier php situé à l'adresse disparue, mais utilisant wordpress, je n'ai pas de pages php liées à mes articles.
J'ai environ 400 erreurs à supprimer, comment je dois m'y prendre ?
J'spère que quelqu'un pourra m'aider car ça fait longtemps que je cherche cette réponse.

Olivier Duffez

A quoi correspondent ces pages ? Pourquoi sont-elles en erreur ? Leur URL a changé ou bien ces pages ont été supprimées ?

GuiAta

D'accord, je viens de comprendre :
DOMAINE/iphone donne une redirection 301 vers
DOMAINE/iphone/
(qui ensuite donne une redirection 301 vers itunes).
Je pensais que c'était l'interprétation qui ajoutait le "/", pas une 301...
Pour la petite histoire, j'avais une mauvaise fonction de redirection, qui donnait un 302.
Merci en tous cas, j'ai appris quelque chose aujourd'hui :)

GuiAta

Merci de me répondre.
Voilà l'url :
J'ai testé avec votre outil d'entête http, mais je ne comprend pas pourquoi il y a une "redirection multiple"...
J'ai un fichier .htaccess dans ce dossier, mais il ne contient que :

RewriteEngine on
RewriteBase /
ErrorDocument 404 http://www.photocite.fr/404.php
Olivier Duffez

La bonne URL semble avec un slash à la fin : qui redirige ensuite vers itunes toujours en 301.
je ne vois pas de 302

GuiAta

Bonjour,j'ai pris exemple sur cet article pour faire une redirection 301 en PHP.
Seulement, quand j'étudie l'entête http via FireBug, il affiche une redirection 301 suivi d'une redirection 302 !
Apparemment les paramètres des 2 redirections sont les mêmes, mais quelqu'un pourrait m'expliquer comment cela se fait, et les impacts sur le SEO ?
Merci d'avance.

Olivier Duffez

Indique-nous l'URL que tu rediriges et le code PHP que tu as utilisé.
As-tu également utiliser un fichier .htaccess ?

Benoist

Merci pour ta réponse Olivier

Cordialement

Benoist

Bonjour,

je souhaite faire une redirection d'un site entier (je change de nom de domaine). La redirection marche bien, j'ai lu qu'une grande partie du PR sera transféré aussi. Dois je cependant conserver le nom de domaine de l'ancien site ? Il expire dans quelques mois. Est ce que je risque de perdre le transfert de page rank dans ce cas ?

Merci

Olivier Duffez

Oui il vaut mieux conserver l'ancien nom de domaine, si possible éternellement, car il restera toujours des liens vers les anciennes adresses (ainsi que des bookmarks des anciennes adresses). Si tu n'as plus le contrôle de l'ancien nom de domaine, ces redirections ne pourront plus se faire.

Collaboratif

Sur cette page il est précisé que le Notepad est suffisant pour créer un fichier .htaccess

Il faut sans doute préciser que certains caractères du Notepad ne sont pas reconnus avec quelques CMS, il faut dans ce cas changer d'éditeur.

Alpha

Bonjour et merci pour ce tuto,
J'ai mis en place un site de e-commerce sous Magento. J'ai voulu rediriger des pages de l'ancien site vers le nouveau. L'ancien et le nouveau site ont le même nom de domaine mais le nouveau site est sur un nouveau serveur (j'ai donc redirigé le domaine au lancement du nouveau site).
Pour rediriger les pages de l'ancien site vers le nouveau, j'ai suivi l'intruction :
RedirectPermanent /ancien_repertoire/ancien_fichier.html

Le problème est qu'en fait, les anciennes URL étaient complexes, du genre : mondomaine.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=2&category_id=1&manufacturer_id=0

J'ai donc plein de pages avec index.php suivi de variables à rediriger

Et je constate que la redirection ne marche pas dans ce cas. Avez-vous une solution ?

Olivier Duffez

Sans savoir quelles sont les nouvelles URL, c'est difficile d'aider... Mais c'est possible de faire les redirections.
Cela dit, ce serait sans doute le moment de passer à la réécriture d'URL.

ObjectifMars

A propos des redirections, il existe un point à garder en tête : les performances web. En effet, dans certains cas ces redirections devraient être garder en cache mais ne le sont pas. Allez voir l’article de Steve Souders qui explique tout ça, fournit un test et des résultats cross-browsers : http://www.stevesouders.com/blog/2010/07/23/redirect-caching-deep-dive/

Merci pour le tuto!

nlaustriat

Hummm est ce quelqu'un sait s 'il est possible de déclarer une page de maintenance (503) directement ET uniquement par un htaccess et ceci sans intégrer un code d'entete (header) sur la page dite de maintenance?

Achat de vin

Pour Alex je confirme les dire de Jahman, il faut que tu passes par un module de rewrite, un dossier est d'ailleurs bien fait sur WRI.

La question que je me pose c'est si on met une 301 pour éviter de supprimer le référencement d'une page 404 supprimé, cette redirection se fera t-elle tout le temps sans perturber la page indexée ?

Olivier Duffez

Quand on redirige définitivement une page d'une URL A à une URL B, les moteurs vont désindexer la page de l'URL A et la réindexer sous l'URL B.

jahman

Alex, il faut selon moi utiliser le module rewrite (soit dans la conf apache soit dans un htaccess)
La regle sera grosso modo:

RewriteEngine On
RewriteRule ^/articles-([0-9]+)$ /article.php?year=$1 [R=301,L]
Promise

J'ai un domaine jvitogo.org contenant les fichiers du site avec une page index.php qui appelle les autres pages de la manière suivante : index.php?page=accueil par exemple.
J'ai créé un autre fichier index.php dont le contenu est différent de l'ancien fichier index.php. Alors il faut changer l'ancien fichier index.php en index1.php qui appellera les autres pages qui n'ont subi aucune modification de la manière suivante : index1.php?page=accueil.
Etant donné que les moteurs de recherche ont déjà référencé l'ancien fichier index.php?page=accueil, comment intégrer le nouveau fichier index1.php?page=accueil sans perdre mon référencement.
Merci.

Alex

Bonjour,

En me basant sur votre exemple :
RedirectPermanent /articles http://www.example.com/actualites/articles

J'aimerais que le dossier /articles-YYYY (ou YYYY est un nombre représentant l'année) soit redirigé de façon permanente vers http://www.example.com/actualites/articles.php?year=YYYY

J'ai essayé
RedirectPermanent /articles-(.*) http://www.votresite.com/actualites/articles.php?year=$1

Mais ca ne marche pas... a l'aide...

Les commentaires sont fermés