Aller au contenu

personnaliser erreur 404


Sujets conseillés

Bonjour,

J'ai cette regle la dans mon .htaccess :

ErrorDocument 404 http://www.mondomain.com/404.php

Dans mon fichier 404.php, j'enregistre les traces dans un fichier de traces :

$texteforfile = "\n\n\n";
$handle = fopen("/home/momdomain/public_html/trace_404.txt", "a+");
$texteforfile .= "REQUEST_URI : ".$_SERVER['REQUEST_URI']."\n";
$texteforfile .= "referer : ".$_SERVER['HTTP_REFERER']."\n";
$texteforfile .= "user agent : ".$_SERVER['HTTP_USER_AGENT']."\n";
fwrite($handle, $texteforfile);
fclose($handle);
unset($texteforfile);
unset($handle);

ce qui me donne par exemple :

REQUEST_URI : /404.php

referer : http://www.google.com/webmasters/sitemaps/...in.com%2F&hl=fr

user agent : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1

mais ce que je voudrais, ce n'est pas recuperer systematiquement 404.php par le $_SERVER['REQUEST_URI'], mais recuperer le nom du fichier demandé et inexistant qui a genere l'erreur 404

J'ai essaye en modifiant mon .htaccess comme ci-dessous :

ErrorDocument 404 http://www.mondomain.com/404.php?page=%{REQUEST_URI}

Puis en recuperant la variable page :

$texteforfile = "\n\n\n";
$handle = fopen("/home/mondomain/public_html/trace_404.txt", "a+");
$texteforfile .= "page demandee : ".$_GET['page']."\n";
$texteforfile .= "REQUEST_URI : ".$_SERVER['REQUEST_URI']."\n";
$texteforfile .= "referer : ".$_SERVER['HTTP_REFERER']."\n";
$texteforfile .= "user agent : ".$_SERVER['HTTP_USER_AGENT']."\n";
fwrite($handle, $texteforfile);
fclose($handle);
unset($texteforfile);
unset($handle);

Mais les traces donnent :

page demandee : %{REQUEST_URI}

REQUEST_URI : /404.php?page=%{REQUEST_URI}

referer : http://www.google.com/webmasters/sitemaps/...in.com%2F&hl=fr

user agent : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1

Y a t'il une solution a mon probleme, afin que je connaisse le nom de la page demandee initialement ?

Merci

Lien vers le commentaire
Partager sur d’autres sites

J'ai cette regle la dans mon .htaccess :

ErrorDocument 404 http://www.mondomain.com/404.php

Ca commence mal !

Avec ce type de redirection ErrorDocument, tu n'auras pas d'entête 404 mais bien une entête 200 OK.

Donc tu risques une pénalité pour contenu dupliqué !

Remplace cette ligne par

ErrorDocument 404 /404.php

Ce sera bien mieux !

Tu as l'outil http-viewer du Hub pour valider tes redirections et les entêtes retournées.

Dan

Lien vers le commentaire
Partager sur d’autres sites

Ca commence mal !

Avec ce type de redirection ErrorDocument, tu n'auras pas d'entête 404 mais bien une entête 200 OK.

Donc tu risques une pénalité pour contenu dupliqué !

Remplace cette ligne par

ErrorDocument 404 /404.php

Ce sera bien mieux !

Tu as l'outil http-viewer du Hub pour valider tes redirections et les entêtes retournées.

Dan

<{POST_SNAPBACK}>

Salut Dan,

J'avais deja prevu le truc, j'ai dans mon 404.php en debut de fichier :

header("HTTP/1.0 404 Not Found");

Et comme tu reponds pas a ma question je suppose que meme toi tu sais pas :(

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...