Contao-Camp 2024
Ergebnis 1 bis 15 von 15

Thema: 404-Fehler abfangen

  1. #1
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.792

    Standard 404-Fehler abfangen

    In einer meiner Bundles zähle ich Seitenaufrufe mit. Nun habe ich gedacht, ich finde die nicht gefundenen Seiten über einen Aufruf der 404-Seite heraus:
    PHP-Code:
    if($objPage->type == 'error_404')
    {
        
    // Log-Eintrag machen, da Seite nicht gefunden wurde
        
    \System::log('Fehler 404: '.$_SERVER['HTTP_REFERER'], __CLASS__.'::'.__FUNCTION__TL_ERROR);

    $_SERVER['HTTP_REFERER'] ist allerdings leer. Wahrscheinlich hat Contao hier schon den Wert entsorgt und ich muß eher in das System eingreifen. Also bei der Funktion die bei einer nicht gefundenen Seite die 404-Seite aufruft. Ich hoffe da gibt es einen Hook....?!
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    In HTTP_REFERER steht ja nicht unbedingt etwas drin? Oder was genau ist dein Ziel?

  3. #3
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.792

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    In HTTP_REFERER steht ja nicht unbedingt etwas drin? Oder was genau ist dein Ziel?
    Bevor ich meine Abfrage auf der Live-Seite einbinden, will ich auch sicher sein, das irgendwann mal was in HTTP_REFERER steht. Angesichts Deiner Frage darf ich davon ausgehen, das Contao den Wert von HTTP_REFERER weitergibt an die 404-Seite. Oder der Browser weiß von wo er kommt und hat in HTTP_REFERER was zu stehen.
    Mein Ziel ist es, das in HTTP_REFERER (in den meisten Fällen) etwas drinsteht und ich damit weiß, welche Seite nicht gefunden wurde.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Wenn du wirklich jeden 404 Response im System Log loggen lassen möchtest, geht das vermutlich auch über die Konfiguration des Loggers (frag mich nicht wie ). Ansonsten könntest du dir einen kernel.response Listener machen, wo du über das Request Objekt dann auch an den richtigen Referer gelangst, wenn vorhanden.

    Contao selbst entfernt nichts.

  5. #5
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard System-Log listet keine 404-Aufrufe

    Hallöchen,

    darf ich mich hier mal anhängen? Bisher wurden 404-Aufrufe bzw nicht gefundene Seiten immer im System-Log aufgezeichnet, jetzt stelle ich fest, dass dem offensichtlich nicht mehr so ist!?

    Die Besucherstatistik zeigt für heute neun 404-Aufrufe; das System-Log in letzter Zeit nicht einen einzigen. Weiß jemand, ob Fehlerseiten nicht mehr geloggt werden, oder in ich das als Bug melden sollte?

    Contao 4.12.5

    VG
    Anke

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Ja, 404 wird nicht mehr im System Log verzeichnet.
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard

    Okay... Und was ist jetzt das Best Practise, um nach einer Neuauflage der Website herauszufinden, welche alten Seiten nicht mehr gefunden werden? Ich fand das immer ganz praktisch ...

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Server Logs analysieren
    » sponsor me via GitHub or PayPal or Revolut

  9. #9
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Server Logs analysieren
    Im Shared Hosting sind das meist "Statistik"-Logs, soweit ich weiß, die wir aus Datenschutzgründen deaktiviert haben.

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Dann darf auch Contao aus Datenschutzgründen das nicht loggen, oder?
    » sponsor me via GitHub or PayPal or Revolut

  11. #11
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Dann darf auch Contao aus Datenschutzgründen das nicht loggen, oder?
    Was ist denn das jetzt für eine Logik? Natürlich DARF Contao das. Um festzustellen, welche Seitenaufrufe zu Fehlern führen, braucht man aber keine IP-Adresse oder sonstige persönliche Daten.

    Bei DF gibt es nur entweder-oder. Entweder man aktiviert "Statistik & Logfiles" mit allem rechtlichen Klatteradatsch - oder man lässt es. Contao war immer äußerst praktisch, wenn Kunden ihre Websites umbauen und Seiten umbenennen lassen, dass man recht einfach das System-Log im Auge behielt und danach die Umleitungen in die htaccess schrieb.

    Edit Super: Als Lösung empfielt einem das Netz den Einsatz von Google Analytics
    Geändert von Anke (15.02.2022 um 13:37 Uhr)

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Zitat Zitat von Anke Beitrag anzeigen
    Was ist denn das jetzt für eine Logik?
    Du hast gesagt, du willst aus Datenschutzgründen kein Logging am Server aktivieren. Dann darf aber auch Contao nichts dergleichen loggen, sonst kannst du das ja aktiviert lassen.
    » sponsor me via GitHub or PayPal or Revolut

  13. #13
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Du hast gesagt, du willst aus Datenschutzgründen kein Logging am Server aktivieren. Dann darf aber auch Contao nichts dergleichen loggen, sonst kannst du das ja aktiviert lassen.
    Die IP-Adresse war in C3 gekürzt...

  14. #14
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Dazu könnte man doch auf der 404-Seite (Seitentyp) ein Template verwenden, wo in PHP ein log_message() eingebaut ist.

  15. #15
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard

    Zitat Zitat von do_while Beitrag anzeigen
    Dazu könnte man doch auf der 404-Seite (Seitentyp) ein Template verwenden, wo in PHP ein log_message() eingebaut ist.
    Danke Hagen,

    das klingt doch nach einem Lösungsansatz! Sofern man PHP-fit ist... Da es im konkreten Fall nicht so viele neue und neu benannte Seiten waren, habe ich die redirects schon eingerichtet, aber wie gesagt, ab und zu kommt es mal vor, dass man gerne wüsste, welche Aufrufe die 404-Seite beanspruchen.

    Gruß,
    Anke

    Edit:
    Ist vllt. nicht elegant, aber erfüllt die bescheidene Anforderung:
    Code:
    <?php
      $req = print_r($_SERVER['REQUEST_URI'], true);
      $date = Date('Y-m-d h:i:s');
      $fp = file_put_contents('my_404_errors.txt', $req . ' - ' . $date . PHP_EOL, FILE_APPEND);
    ?>
    Geändert von Anke (16.02.2022 um 13:28 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •