Page d'erreur 404 / 410 ErrorDocument help

WRInaute passionné
Bonjour à tous,

Sur ma boutique en ligne j'ai mis en place des redirections 301 vers des pages proches si elles existent ou vers l'accueil dans le cas contraire.

Je voulais modifier cela et renvoyer un code 404/410 lors que les URLs n'existent pas/plus.

J'ai donc remplacer ma redirection 301 dans mon fichier PHP par ceci comme lu dans le dossier de WRI
PHP:
<span class="syntaxdefault">header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Status: 404"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 404</span><span class="syntaxkeyword">);<br />exit();&nbsp;</span><span class="syntaxdefault"></span>

Et dans mon .htaccess j'ai les lignes :
Code:
#ERREUR 404
ErrorDocument 404 /erreur404.php
ErrorDocument 410 /erreur410.php

Le problème c'est que ça ne redirige rien du tout je reste sur l'URL demandée (qui n'existe pas) avec un entête 200, plutôt que d'arriver sur ma page 404 ou 410
 
WRInaute passionné
J'ai réussi à envoyer vers ma page d'erreur comme ça :
PHP:
<span class="syntaxdefault">header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Status: 404 Not Found"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 404</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location: /erreur404.php"</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span>
Ca marche presque sauf que le code HTTP à l'arrivée est 200 OK et non 404
 
WRInaute discret
Tu y est presque, un ti coup de pouce :

Code:
header("Status: 404 Not Found", false, 404);
include "/erreur404.php";
exit;

;-)
 
WRInaute passionné
Yeah tu rocks !

J'ai bien l'URL erronée dans la barre de navigation, avec la page 404 affichée, le code 404 Not Found et l'entête HTTP 404.

Au moins je suis sûr d'être Google friendly et de ne prendre aucun risque, merci beaucoup !

Edit: Je précise que tout cela est du à des URLs rewritées qui disparaissent mais qui restent "interprétées" en .htacess et délivrent donc une page vide d'info (d'où mon ancienne 301) plutôt que la page d'erreur 404
 
WRInaute passionné
En fait ça ne marche pas du tout atterrit sur une page blanche !!! Je ne comprends pas ça fonctionnait à l'instant et je n'ai rien changé depuis HELP svp je ne trouve aucune solution j'ai cherché dans tous les sens rien ne marche
 
WRInaute passionné
J'ai essayé en faisant juste un "echo" à la place du include, et j'ai une page blanche aussi.
PHP:
<span class="syntaxdefault">header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Status: 404 Not Found"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 404</span><span class="syntaxkeyword">);<br />echo&nbsp;</span><span class="syntaxstring">"erreur&nbsp;404&nbsp;!"</span><span class="syntaxkeyword">;<br />exit();</span><span class="syntaxdefault"> </span>
Je pense que dès que l'on renvoie le statut 404, le serveur bloque tout non ?

C'est dingue que personne ne sache JE SUIS LE SEUL à faire du rewriting ou quoi ?
 
WRInaute passionné
Hello,

Avant je n'avais pas de 404, car je redirigeais les pages supprimées en 301. Avec tous les nouveaux filtres de GG, je préfère renvoyer quelques 404 car c'est naturel et ça fait moins "suroptimisé". Surtout que les 301 transmettent les backlinks et je ne voulais pas que Pingouin considère cela comme du "détournement de backlinks", je verrai l'évolution lorsque GG aura eu le temps de tout mettre à jour. Pour le moment aucun problème, GG ne plombe pas un site à cause de quelques 404
 
Discussions similaires
Haut