PHP/Apache : "provoquer" une erreur 404

Le
Aurelgadjo
Hello,

Admettons une page de contenu page.php, et sa régle de rewriting. Aprés
rewriting, la page sera accédée par domaine.tld/toto_a_la_plage-450.html .
Dans mon .htaccess, je trouve donc qqchose comme ceci, et ça fonctionne :
RewriteRule ^(.*)-([0-9]+).html$ page.php?id=$2 [L]

Mon problème est le suivant : le titre de la page est amené à changer et
je dois donc le vérifier (but: ref google, c'est pas moi qui décide). Il
me suffit de prendre en compte le nom de la page ($1) et de voir si en
reconstruisant l'url à partir de ce que j'ai en base, c'est ok.
Cependant, si le titre ne correspond pas, je devrais retourner un code 404.
Ma question est : comment "provoquer une page" 404 ? Elles ne sont pas
personnalisées (pages par défaut d'apache) et je n'ai pas envie de le faire.
Suis-je obligé ? (pour utiliser header() et balancer la 404 ?)

Merci
Aurélien
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thibault
Le #18596821
On 06 Feb 2009 01:48:26 GMT, Aurelgadjo wrote:
Hello,

Admettons une page de contenu page.php, et sa régle de rewriting. Aprés
rewriting, la page sera accédée par domaine.tld/toto_a_la_plage-450.html .
Dans mon .htaccess, je trouve donc qqchose comme ceci, et ça fonctionne :
RewriteRule ^(.*)-([0-9]+).html$ page.php?id=$2 [L]

Mon problème est le suivant : le titre de la page est amené à changer et
je dois donc le vérifier (but: ref google, c'est pas moi qui décide). Il
me suffit de prendre en compte le nom de la page ($1) et de voir si en
reconstruisant l'url à partir de ce que j'ai en base, c'est ok.
Cependant, si le titre ne correspond pas, je devrais retourner un code 404.
Ma question est : comment "provoquer une page" 404 ? Elles ne sont pas
personnalisées (pages par défaut d'apache) et je n'ai pas envie de le faire.
Suis-je obligé ? (pour utiliser header() et balancer la 404 ?)



Pas sûr d'avoir compris tout le second paragraphe, mais vu ta
réécriture, personnaliser la 404 d'apache ne servira à rien, vu qu'il
aura déjà ré-écrit et appelé ton page.php.

C'est à ce dernier que revient la tâche de retourner la 404,
effectivement en utilisant header() :

header('HTTP/1.1 404 Not Found');
print <<<EOD
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL {$_SERVER['REQUEST_URI']} was not found on this
server.<P>
</BODY></HTML>

EOD;
exit;

Je crois que le body est dans ce cas facultatif, et pour rappel
certains navigateurs ignorent le body (par exemple IE en dessous de 512
octets je crois).
Aurelgadjo
Le #18604811
Thibault a écrit :
On 06 Feb 2009 01:48:26 GMT, Aurelgadjo wrote:
Hello,

Admettons une page de contenu page.php, et sa régle de rewriting. Aprés
rewriting, la page sera accédée par domaine.tld/toto_a_la_plage-450.html .
Dans mon .htaccess, je trouve donc qqchose comme ceci, et ça fonctionne :
RewriteRule ^(.*)-([0-9]+).html$ page.php?id=$2 [L]

Mon problème est le suivant : le titre de la page est amené à changer et
je dois donc le vérifier (but: ref google, c'est pas moi qui décide). Il
me suffit de prendre en compte le nom de la page ($1) et de voir si en
reconstruisant l'url à partir de ce que j'ai en base, c'est ok.
Cependant, si le titre ne correspond pas, je devrais retourner un code 404.
Ma question est : comment "provoquer une page" 404 ? Elles ne sont pas
personnalisées (pages par défaut d'apache) et je n'ai pas envie de le faire.
Suis-je obligé ? (pour utiliser header() et balancer la 404 ?)



Pas sûr d'avoir compris tout le second paragraphe, mais vu ta
réécriture, personnaliser la 404 d'apache ne servira à rien, vu qu'il
aura déjà ré-écrit et appelé ton page.php.




Tu as répondu à la question ...

C'est à ce dernier que revient la tâche de retourner la 404,
effectivement en utilisant header() :

header('HTTP/1.1 404 Not Found');
print <<<EOD
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL {$_SERVER['REQUEST_URI']} was not found on this
server.<P>
</BODY></HTML>

EOD;
exit;




... et en plus fait mon boulot

Je crois que le body est dans ce cas facultatif, et pour rappel
certains navigateurs ignorent le body (par exemple IE en dessous de 512
octets je crois).



Merci.
Publicité
Poster une réponse
Anonyme