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 :
CODE
$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);
$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 :
CITATION
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
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 :
CODE
ErrorDocument 404 http://www.mondomain.com/404.php?page=%{REQUEST_URI}
Puis en recuperant la variable page :
CODE
$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);
$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 :
CITATION
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
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
