Utiliser header() pour rediriger vers 404

Nouveau WRInaute
Salut,

Mes urls sont de ce format :
-http://www.domaine.tld/nom-famille/nom-produit.html
Lorsque le visiteur arrive sur le site, une requête cherchant "nom-produit" dans la base est effectuée.
Lorsque cette requête ne renvoie rien, j'aimerais rediriger renvoyer un 404

J'ai cette ligne dans mon htaccess
Code:
ErrorDocument 404 http://www.domain.tld/404.php
--> ça fonctionne parfaitement

D'où ce code :
Code:
if ($numRows == 0) {
	header("Status: 404 Not Found");
	exit();
}

Quand je provoque un 404, le serveur me renvoie bien le code :
HTTP/1.1 404 Not Found
Date: Sun, 10 Feb 2008 12:01:34 GMT
Server: Apache/2.0.59 (Unix) mod_ssl/2.0.59 OpenSSL/0.9.8d
X-Powered-By: PHP/5.2.1
Vary: Accept-Encoding,User-Agent
Content-Length: 0
Connection: close
Content-Type: text/html

MAIS, l'url reste inchangée et la page blanche...

Une idée ?
Merci
 
WRInaute discret
C'est normal.

La ligne dans ton htaccess signifie en gros que tu dis à ton Apache :
- Si te ne peux pas délivrer la page demandé, renvois une erreur 404 et redirige le gars vers la page crée à cet effet.

Dans le cas de ton code php. Il n'y pas d'erreur 404, puisque ton script est bien trouvé par Apache. C'est ton code php qui s'occupe tout seul comme un grand d'envoyer un header 404 au client. Et c'est à ton code php de continuer tout seul comme un grand à rediriger le client.

Rajoute la ligne suivante dans ton php :
include("404.php");

Après le premier header, et avant le exit.
 
WRInaute passionné
Je remonte ce topic car j'ai besoin d'aide, j'ai fait exactement pareil mais je reste sur une page blanche d'où vient le problème ?
 
Discussions similaires
Haut