Redirection 301 puis redirection 302 vers page 404

WRInaute discret
Bonjour à tous :D

Tout d'abord, je vais essayer d'expliquer le plus clairement mon problème. Chose compliquée, comme vous pouvez le constater simplement au titre de ce topic :P

Partons du principe que je force le trailing slash à la fin de mes urls:

Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule (.*) http://www.domain.com/$1/ [R=301,L]

Imaginons ensuite que je veuille accéder à http://www.domain.com/dossier/nimportequoi ...

En regardant les communications HTTP, j'ai remarqué que ma règle pour ajouter le trailing slash s'exécutait également sur les chemins inexistants. J'ai donc dans un premier temps l'exécution d'une redirection 301 vers http://www.domain.com/annuaire/nimportequoi/ puis seulement la redirection 302 Found (vers ma page qui gère l'erreur 404).

Ma question est la suivante: est-ce gênant pour le référencement ? Et si oui, comment faire comprendre au serveur qu'il ne doit pas rajouter de slash si l'url génère un code 404 ?

En espérant avoir été assez clair dans l'explication du problème et en vous remerciant d'avance ! :)
 
WRInaute impliqué
Déjà commence par ne pas faire de 302 vers ta 404.

Une page existante ok = 200.
Une page ancienne redirigée vers une nouvelle = 301
Une page inexistante ou supprimée = 404
Une page temporaire = 302
Une page de maintenance = 503

On a fait le tour pour la majorité des cas.
 
WRInaute discret
En fait, la redirection 302 se fait automatiquement (car ErrorDocument 404 pointe sur /404/ et /404/ est une url réécrite). Donc ici le problème est plutôt au niveau de la redirection 301 qui se fait au début. Ma question principale est: est-ce problématique pour le référencement? En sachant que malgré tout, on arrive tout de même sur un code 404 (résultat attendu). Si cela pose problème, comment éviter le rajout du slash en fin d'url (ce qui cause la redirection 301) pour une url amenée à retourner un code 404 ?
 
WRInaute impliqué
302 automatique ou pas, c'est une erreur et ces à toi de la gérer correctement.
Google déteste les mauvais code d'erreur.

Pour ta 301, dans l'absolue, y a pas de soucis une 301 suivi d'une 404 ne gène pas GG.
Sinon, si c'est toi que ça gène, tu test avant les url.
Si url ok, tu redirige en 301 avec / de fin d'url, sinon tu envoi en 404 avec CODE 404.
 
WRInaute accro
Giustino a dit:
En fait, la redirection 302 se fait automatiquement (car ErrorDocument 404 pointe sur /404/ et /404/ est une url réécrite).
Ben non.

Si ErrorDocument pointe sur /404/ et que /404/ est réécrite correctement il n'y aura pas de redirection 302.

Jean-Luc
 
WRInaute discret
jeanluc a dit:
Ben non.

Si ErrorDocument pointe sur /404/ et que /404/ est réécrite correctement il n'y aura pas de redirection 302.

En fait non, en regardant les entêtes j'obtiens ceci juste après la redirection 301 (301 pour l'ajout du slash en fin d'url):

Code:
HTTP/1.1 302 Found
Location: http://www.domain.tld/xxx/404/

Ce qui confirme bien que la 302 sous-entend "ok la page n'existe pas mais j'ai une règle 404 à appliquer donc j'ai trouvé la page à afficher (celle qui s'appelle /404/)".

Au niveau de ma première question, j'ai bien réfléchi et je pense que le code 301 qui s'applique avant la redirection 404 (302 Found en l'occurence) n'est pas trop grave pour le référencement car les pages n'existent pas dans ces cas-là.

Quelqu'un peut-il me confirmer (ou non) cette hypothèse ?
 
WRInaute discret
Code:
ErrorDocument  404 	http://www.site.com/404/

et ma règle de réécriture:

Code:
RewriteRule  ^404/?$  navigIndex.php?p=notfound [L]

J'ai également testé avec une redirection directe:

Code:
ErrorDocument  404 	http://www.site.com/navigIndex.php?p=notfound

et cela retourne bien aussi un 302 Found (logique ^^)

Donc en somme on obtient un 404 si je désactive le ErrorDocument 404.
 
WRInaute accro
Essaie ceci :
Code:
ErrorDocument  404    /navigIndex.php?p=notfound
C'est la présence du http://www.site.com qui provoque la redirection 302.

Jean-Luc
 
WRInaute discret
Ok j'ai bien une redirection 404 Not Found désormais. Le problème c'est que j'ai l'adresse inexistante dans la barre du navigateur, hors j'avais écrit une règle pour réécrire cela en http://www.site.com/404/. Mais ceci provoquerait encore une redirection 302 alors ?

Et pour la redirection 301, comment tester si une url existe (dans mes règles ou sur le serveur) avant de lui ajouter un slash à la fin ?
 
Nouveau WRInaute
Bonjour à tous

En charge d'une site où je vends des véhicules, j'utilise wordpress. Chaque nouveau véhicule est mis en vente via un portfolio unique (donc une URL unique). En fonction du temps de vente, l'indexation de ces pages est faite ou non par Google. Mon problème, lorsque que le véhicule est vendu, je supprime le portfolio mais l'adresse est tjs valable et les personnes souhaitant voir le véhicule (après la recherche correspondant donc) tombent sur une erreur 404 ce qui me plait guère.

J'ai donc décidé de mettre en place des redirection 301 des URL correspondants aux portfolio supprimé vers une page disant: "ce véhicule est vendu, si vous voulez en voir d'autres, blabla". J'ai fait une page/marque.

J'ai simplement peur d'avoir fait quelque chose qui pourrait être mal perçu par Google en termes de référencement ? Pourriez-vous m'éclairer si cela aura un impact sur mon référencement, mon indexation de page ? Dois-je passer en redirection 302 ou 307 ? Dois-je au bout de quelques semaines supprimer les redirections 301 ?

Merci !
 
Discussions similaires
Haut