web-dev-qa-db-fra.com

Comment gérer les redirections et les codes de statut http dans les URL lorsqu'un produit devient indisponible?

J'ai ce cas d'utilisation qui arrive fréquemment:

Beaucoup de produits à vendre, périodiquement un pourcentage est en rupture de stock.

Un utilisateur navigue toujours sur l'ancienne URL, à l'emplacement où se trouvait un produit.

Je souhaite les rediriger vers une page de recherche, leur signaler que le produit n'est plus disponible et tenter de leur proposer des alternatives.

Dans le même temps, je souhaite informer les services automatisés (moteurs de recherche, moteurs de magasinage) que ce produit spécifique a disparu, afin d'éviter toute altération continue des URL en question.

Quels sont les moyens pour gérer cela avec grâce?

Edit: Je refactoring/recodage du site en code php personnalisé. J'ai aussi une page 404 dédiée, avec des liens vers des endroits sur le site, etc., mais je ne veux pas vraiment dupliquer la fonctionnalité de la page de recherche sur la page 404 lorsqu'un système est déjà en place dans un script php différent, et pour la plupart des 404, j'ai déjà une suggestion plus générique d'alternative.

1
Kzqai

Vous avez placé la balise 404 sur la question, alors qu'une page renvoyant un code d'erreur 410 ("Gone") serait préférable. Pour PHP, vous pouvez le faire comme ceci:

header("HTTP/1.1 410 Gone");

avant de commencer à faire une autre sortie.

Votre question est similaire à celle-ci Est-il préférable d'avoir une redirection ErrorDocument 404 vers la page d'accueil ou une page d'erreur 404 standard? mais la réponse acceptée pour cela suggère ce qui semble ressembler à une page, alors que votre idée de une page proposant des alternatives implique qu'il y en a beaucoup, une pour chaque produit en rupture de stock.

2
paulmorriss