Redirections HTTP 303

Nouveau WRInaute
Bonjour,
Je gère un site qui dispose d'un moteur de recherche interne.
Si la recherche comprend plusieurs résultats, une page avec la liste des résultats est affichée.
SI la recherche comprend un seul résultat, alors une redirection vers le résultat est automatiquement faite.

Jusqu'à présent cette redirection était faite en HTTP 302 (Moved temporarily).
Etant donné que le contenu n'est pas "déplacé", ni de manière permanente ni même temporaire, et qu'il s'agit donc d'une sorte de suggestion faite d'aller directement à cette page, je me demande si ce code HTTP est bien approprié, ou s'il serait plus judicieux d'utiliser le code 303 (See Other).

Peu de ressources sont disponibles à ce sujet, avez-vous des expériences à partager ?

Benjamin
 
WRInaute passionné
si c'est un moteur de recherche ca ne doit pas être indexé par les moteurs de recherche. C'est donc pas grave de mettre 302 ou même 301.
 
Nouveau WRInaute
Hm non justement, les pages de résultat ne sont pas indexables, mais suivables (noindex, follow).
Je voudrais justement que le bot puisse tout de même suivre les liens lorsqu'un autre site pointe vers mes résultats de recherche, d'où l'intérêt d'une redirection bien faite !
 
WRInaute accro
S'il y a redirection vers la "réponse unique", il n'y a pas d'URI de recherche (l'entête http n'aura jamais envoyé de code d'état 200).
Comment le visiteur lambda peut-il savoir que l'URI de recherche existe (genre /search?q=test) s'il a été redirigé ?

;)
 
Nouveau WRInaute
... tout simplement car certains sites automatisent cette recherche en direction de mon site :wink:
Imaginez le cas d'un CMS où le mot-clé déterminant de la page déclenche automatiquement un lien "rechercher xxx sur ce site".

C'est donc potentiellement du "link juice" qui arrive sur mon site, et même si je suis entièrement d'accord avec le fait de ne pas indexer les résultats de recherche, je tiens à laisser passer ce "link juice" vers les pages de contenu (d'où le noindex, follow).

Et d'où ma question pour le HTTP 303 dans le cas d'un résultat de recherche unique !
 
WRInaute passionné
tu ne peux pas plutôt laisser la page de recherche et mettre un message indiquant que tu fais une redirection automatique après X secondes vers la page du résultat unique?
 
Nouveau WRInaute
Non, ça n'est vraiment pas ce que je veux faire ! :?
Pour revenir à la question de départ : 302 ou 303 ?
 
Nouveau WRInaute
Bon, après de nombreuses lectures, j'ai pu comprendre ça :

- HTTP/1.0 autorise 2 codes pour les redirections :
301 Moved Permanently
302 Moved Temporarily

- Devant les ambiguïtés qu'a générées le code 302, HTTP/1.1 en a modifié le sens et ajouté de nouveaux codes :
301 Moved Permanently
302 Found
303 See Other
307 Temporary Redirect

- le 301 n'a pas changé (redirection permanente et inconditionnelle) ;
- le 302 semble indiquer textuellement que la ressource a été trouvée ailleurs, et que le client devrait suivre l'uri fournie ;
- le 303 ne semble devoir être utilisé que pour rediriger une requête POST vers une requête GET ;
- le 307 indique une redirection temporaire.

C'est donc plus entre les codes 302 et 307 que je dois faire mon choix.
Mais leurs définitions dans la RFC (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) sont si proches (pour ne pas dire identiques), qu'il est difficile d'en comprendre la philosophie.

Il semblerait que le choix du 302 ou du 307 réside surtout dans le fait qu'une requête POST doive ou non être répétée au moyen d'une requête POST, ce qui n'était pas clairement défini dans le 302 Moved Temporarily du HTTP/1.0.

Mais ma question est surtout de connaître les éventuelles subtilités d'interprétation de ces deux codes par les moteurs de recherche, quelqu'un aurait une expérience à ce sujet ?

Un peu de lecture :
http://therangeblog.com/seo/301-302-303-307-and-you-thought-you-knew-a ... redirects/
http://sebastians-pamphlets.com/the-anatomy-of-http-redirects-301-302-307/

Benjamin
 
Discussions similaires
Haut