TROUVER LA PAGE D'ORIGINE D'UNE ERREUR 404

Discussion dans 'URL Rewriting et .htaccess' créé par malango, 21 Février 2004.

  1. malango
    malango WRInaute discret
    Inscrit:
    14 Octobre 2003
    Messages:
    77
    J'aime reçus:
    0
    Je suppose que je suis en train de réinventer l'eau chaude. Alors demander si klkun a déjà la solution, qui existe forcément...
    Voilà mon problème : à force de bidouiller le site dans tous les sens, de trouver toujours LA solution.... bref, j'en arrive à avoir une page d'erreur qui reçoit autant de visiteurs que toutes les autres pages... C'est un peu con! J'ai tenté de me faire envoyer un mail à chaque erreur 404 en m'envoyant le nom de la pga d'origine, celle qui contient un lien qui renvoit une erreur 404. Que nenni! Pipo! pas de referrer dans le mail.
    Comment récupérer le nom de la page d'origine ou quelle est la meilleure solution pour recevoir ce mail et surtout LE NOM DE LA PAGE QUI M.....
    Certains hébergeurs proposent cette fonction... Pas le mien!
    C'est grave, docteur?
     
  2. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    20 561
    J'aime reçus:
    658
    dis-nous ce que tu as mis dans ton .htaccess pour gérer la page 404, ainsi que les lignes de code utilisées pour t'envoyer le referer par email...
     
  3. Remi L.
    Remi L. WRInaute impliqué
    Inscrit:
    6 Septembre 2003
    Messages:
    909
    J'aime reçus:
    0
    Plutôt que de t'envoyer un mail à chaque erreur (ce que je trouve assez démesuré...), tu peux stocker les info dans un fichier.
    En PHP, tu auras l'url demandée dans la variable $_SERVER["REQUEST_URI"].

    Tu peux même te mettre toutes les autres infos (time, referer, user-agent, etc...), des logs d'erreur en quelque sorte...
    L'essayer c'est l'adopter ;)
     
  4. malango
    malango WRInaute discret
    Inscrit:
    14 Octobre 2003
    Messages:
    77
    J'aime reçus:
    0
    Le pblme c'est que si je fais une redirection vers une page "erreur.php", l'URI devient tout logiquement www.tartempion/erreur.php....

    Y a-t-il un moyen de récupérer ce REQUEST_URI sous une forme quelconque dans le HTACCESS qui permettrait par exemple de faire une redirection genre :

    erreur.php?page=resultat_fontion_htaccess?
     
  5. malango
    malango WRInaute discret
    Inscrit:
    14 Octobre 2003
    Messages:
    77
    J'aime reçus:
    0
    J'ai cherché un peu partout une doc sur l'utilisaion des variables dans le HTACCESS... Rien! A part l'incourtournable article de Dan Hezl qu'on retrouve sur 2165487 sites (au moins...) rien d'autre!
    Pourtant elles existent et je ne dois pas être loin de la solution...
    dernier esai infructueux en date :
    dans le HTACCESS :

    ErrorDocument 404 http://w*w.malango.net/erreur.php?page= %{HTTP_REFERER}

    ça marche pas mais c'est dans l'écriture de la variable HTTP_REFERER que ça m...

    Est-il possible de trouver une doc sur les variables utilisées dans le HTACCESS et la manière de les utiliser????
     
  6. nikoshr
    nikoshr WRInaute occasionnel
    Inscrit:
    10 Juillet 2003
    Messages:
    295
    J'aime reçus:
    0
    Oui, oui, pas de problème : la doc Apache, la liste des directives, celles valides pour un .htaccess ont un h dans la colonne de droite.

    Code:
    ErrorDocument 404 /erreur.php
    
    et dans erreur.php tu récupères les variables du serveur et de la requête, voir les variables prédéfinies de PHP

    Dans la directive ErrorDocument, utiliser un nom de domaine complet force une redirection. La syntaxe ci-dessus fait appel à un fichier local et préserve le code de retour (404).
     
  7. malango
    malango WRInaute discret
    Inscrit:
    14 Octobre 2003
    Messages:
    77
    J'aime reçus:
    0
    COOL, on avance! En fait, c'est bien le chemin absolu qui foutait la m...
    Par contre, quand l'erreur vient d'une page du site, le $_SERVER['HTTP_REFERRER'] ne renvoit aucune valeur... J'attends de voir ce qui se passe quand le lien vient de l'extérieur, mais à priori ça marche : j'utilise ça pour mon compteur...
     
  8. Remi L.
    Remi L. WRInaute impliqué
    Inscrit:
    6 Septembre 2003
    Messages:
    909
    J'aime reçus:
    0
    :? C'est pas le referer qu'il te faut... c'est request_uri...
    Tiens, voilà en gros le code que j'utilise depuis un certain temps pour me créer des logs au même format que ceux d'Apache avec les erreurs 404.
    Ce bout de PHP est placé dans mon erreur404.php mis en place grâce au htaccess, tel que l'a décrit Nikoshr
    Code:
    <?php
    $logfile = "../erreurs404.log";
    $mydomain = "www.mondomaine.com";
    $timezone="+0100";
    $MonthLib = array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
    $lt= localtime(time());
    $time= sprintf("[%02d/%s/%04d:%02d:%02d:%02d $timezone]",$lt[3],$MonthLib[$lt[4]],$lt[5]+1900,$lt[2],$lt[1],$lt[0]);
    $refer=$_SERVER["HTTP_REFERER"];
    $fd=fopen($logfile,"a");
    if($fd){
      flock($fd,LOCK_EX);
    	fputs($fd,$_SERVER["REMOTE_ADDR"]." $mydomain - $time \"GET ".$_SERVER["REQUEST_URI"]." ".$_SERVER["SERVER_PROTOCOL"]."\" 404 -"." \"$refer\" \"".$_SERVER["HTTP_USER_AGENT"]."\"\n");
    	flock($fd,LOCK_UN);
    	fclose($fd);
    }
    ?>
    
    Le fichier de log est placé au dessus de ma zone accessible par http, pour que je sois le seul à pouvoir le lire.
    Je récupère ce fichier assez régulièrement et cela me suffit à cerner les problèmes, tout en m'évitant d'extirper les erreurs 404 de mes fichiers ordinaires de logs.
    Voili voilou...
     
  9. malango
    malango WRInaute discret
    Inscrit:
    14 Octobre 2003
    Messages:
    77
    J'aime reçus:
    0
    L'URI, je la récupère bien, mais ce que je veux savoir c'est sur quelle page il y a le lien mort... que ce soit en interne ou en externe (histoire de prévenir le site ou de mettre une redirection...)
    J'essaie ta moulinette et je te dis quoi
    Merci
     
  10. malango
    malango WRInaute discret
    Inscrit:
    14 Octobre 2003
    Messages:
    77
    J'aime reçus:
    0
    podzob!!!
    Pas de referer!
    Ta moulinette marche nickel mais j'ai toujours pas la page où se trouve le lien mort...
     
  11. Davidc
    Davidc Nouveau WRInaute
    Inscrit:
    17 Février 2004
    Messages:
    8
    J'aime reçus:
    0
    heu... j'ai peut-être mal compris un truc mais j'ai eu l'impression qu'il te disait de ne plus regarder le REFERER mais plutôt le REQUEST_URI
    (qu'il récupère également au passage)

    normalement si le htaccess fait une réécriture locale (sans le http:// ... )
    et que tu prends le REQUEST_URI tu as ce que tu cherchais.

    c'est une solution de ce type qu'il te faudra utiliser, tu peux donc tenter pourquoi pas d'autres variables, mais l'une de ces deux là est sensée convenir

    mais ceci dit la doc d'Apache cite aussi des usages comme ceux auxquels tu penses:
    par exemple...

    donc en utilisant les variables qui nous intéressent ici, il doit y avoir moyen de faire une ré-écriture (sans redirection) pour avoir du
    .....php?uri=%{REQUEST_URI}

    si ni l'un ni l'autre ne fonctionne ça sera à en perdre son latin.
     
  12. Davidc
    Davidc Nouveau WRInaute
    Inscrit:
    17 Février 2004
    Messages:
    8
    J'aime reçus:
    0
    Trouvé sur un autre forum, ça pourrait t'aider:

    note que pour certains ça fonctionne très bien de la première façon, et pour lui seulement de cette façon là, peut-être des histoires de configuration de php ou du derveur ?


    essaye toujours... on ne sait jamais. Si ça se trouve tu peux l'avoir quand même ton referer... Et puis sinon (puisque le referer n'est pas une info fiable: parfois masquée par la config parfois non émis par le navigateur) tu pourras toujours essayer également:
    $_SERVER['remote_host'] pour voir éventuellement si ça vient toujorus du même endroit (si oui, l'erreur ne vient peut-être pas de toi mais d'un favori mal mémorisé ?)

    enfin bon... voilà les idées que j'ai ... A+
     
  13. Remi L.
    Remi L. WRInaute impliqué
    Inscrit:
    6 Septembre 2003
    Messages:
    909
    J'aime reçus:
    0
    Oui, cela pourrait expliquer son problème car pour ma part le 'referer' est parfaitement renseigné.
     
  14. malango
    malango WRInaute discret
    Inscrit:
    14 Octobre 2003
    Messages:
    77
    J'aime reçus:
    0
    ÇA MARCHE !!!

    On récapitule?

    dans le htaccess :
    ErrorDocument 404 /erreur.php
    avec une adresse RELATIVE (merci nikoshr!)

    dans la page d'erreur :

    $prov = getenv('HTTP_REFERER');
    $uri = $_SERVER["REQUEST_URI"];
    avec utilisation de la fonction getenv() (merci Davidc!)
     
  15. iubito
    iubito Nouveau WRInaute
    Inscrit:
    25 Avril 2004
    Messages:
    31
    J'aime reçus:
    0
    Moi je viens de me prendre la tête avec ça sur un site chez free.

    Ma solution :

    .htaccess :
    Code:
    ErrorDocument 404 /404.php
    /404.php :
    Code:
    <?php
    
    //echo 'REFERER = '.getenv('HTTP_REFERER');
    //echo '<br />REQUEST_URI = '.getenv("REQUEST_URI");
    
    //Enlève le / du début
    $title = ereg_replace("^/", "", getenv("REQUEST_URI"));
    //die($title);
    
    header('HTTP/1.0 200 OK');
    header("Location: index.php?title='.$title);
    
    ?>
     
Chargement...
Similar Threads - TROUVER ORIGINE ERREUR Forum Date
Trouver la page d'origine d'un backlink Débuter en référencement 24 Septembre 2017
Trouver les noms de domaines contenant un mot particulier Noms de domaine et référencement 22 Mai 2021
Comment trouver la position de mon site sur Google ? Débuter en référencement 13 Mai 2021
retrouver mot de passe Facebook 10 Avril 2021
Des sites pour trouver des petits jobs freelance en traduction ? Le café de WebRankInfo 16 Mars 2021
Comment trouver des clients en rédaction web ? Rédaction web et référencement 16 Février 2021
Comment trouver les URL indexées cassées ? Débuter en référencement 12 Novembre 2020
Comment trouver des liens en dofollow gratuits ? Netlinking, backlinks, liens et redirections 21 Juin 2020
Où trouver le trafic incorrect Adsense détaillé par jour ? AdSense 5 Mai 2020
WordPress Comment retrouver où est faite une redirection 301 ? Administration d'un site Web 2 Mars 2020