1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

WP 404 error-handling?

Dieses Thema im Forum "Design" wurde erstellt von eba.nst, 15. November 2017.

  1. eba.nst

    eba.nst Member

    Registriert seit:
    7. November 2017
    Beiträge:
    13
    Zustimmungen:
    0
    Hallo Wordpress-Forum,

    ich arbeite mal wieder an einer WP-Seite, die ich nicht nennen darf (wg. NDA), und habe ein Problem:
    Wenn ich eine ungültige URL eingebe, also sowas wie https://www.domain.tld/ouhqw083/ wird mir eine Seite angezeigt, die außer dem Header und dem Footer keinen Inhalt hat.
    Es wird mir jedenfalls nicht die in dem Theme (irgend so ein proprietärer Frickelschrott, darf ich auch nicht nennen) enthaltene 404.php angezeigt, und auch nicht die Seite, die ich in der .htaccess über "ErrorDocument 404 ...." zu definieren versucht habe.

    In der index.php oder page.php einen Abschnitt
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    einzufügen hat ebenfalls nichts gebracht - statt dessen kommt dann eine komplett weiße Seite (obwohl die 404.php definitiv Inhalt hat, auch HTML-Inhalt, der sicher angezeigt werden würde).

    Dabei bleibt der ungültige "404"-Teil der Adresse (im obigen Beispiel "ouhqw083") auch einfach stehen, so dass es so aussieht, als ob überhaupt kein 404 Fehler generiert würde?

    Deshalb würde ich gerne mal wissen, wie das Handling von 404-Fehlern in Wordpress funktioniert, und was da alles dazwischen funken könnte?
    An Plugins, die das Potential dazu hätten, fallen mir auf der Seite in erster Linie die Sicherheitsplugins Shield, iThemes Security und vielleicht noch WPML Multilingual CMS. Das Dumme dabei: Außer iThemes lassen die sich nicht einfach "deaktivieren", ohne dass man dabei Gefahr läuft, sich die Datenbank zu zerschießen, was ich deshalb ungern machen würde.

    Daher nun wieder mein letzte Ausweg: Wer von Euch kann mir hier hilfreiche Tipps und Hinweise geben?


    Danke & viele Grüße!
     
  2. eba.nst

    eba.nst Member

    Registriert seit:
    7. November 2017
    Beiträge:
    13
    Zustimmungen:
    0
    So, nun habe ich die Plugins doch deaktiviert, aber das 404-Verhalten ändert sich trotzdem nicht. Muss also irgendwo im Theme sein? Nur dass da eine 404.php existiert, die jedoch nie aufgerufen wird.

    Hat wirklich niemand eine Idee, wo dieser Aufruf abgefangen werden könnte?
     
  3. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.678
    Zustimmungen:
    1.786
  4. eba.nst

    eba.nst Member

    Registriert seit:
    7. November 2017
    Beiträge:
    13
    Zustimmungen:
    0
    @b3317133 Danke, das habe ich gelesen, und war auch im Grunde die Information, die ich vorher schon hatte (weshalb ich es über die verschiedenen Methoden probiert habe). Das Problem ist: Irgendwas blockiert den Aufruf der 404.php Seite! Statt dessen wird wie gesagt eine "leere" Seite, die nur aus Header (mit Menü etc.) und Footer besteht, angezeigt. Das heißt, es muss irgend etwas "vorher" sein, was da den Aufruf blockiert...?
     
  5. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    Wenn es kein Plugin ist, dann vermute ich mal, der Fehler liegt im Theme ... evtl. was in der functions.php?
     
  6. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.678
    Zustimmungen:
    1.786
    Diese "verschiedenen Methoden" waren leider alle grundfalsch, daher führte das auch zu nichts.

    Würde für eine Fehlersuche eins nach dem anderen alle Plugins aber v.a. erstmal diese "Sicherheits"-Plugins abschalten, gerade wenn es noch dazu mehrere gleichzeitig sind.

    Wo genau kann man denn die nicht funktionierende 404 Seite mal ansehen?
     
  7. eba.nst

    eba.nst Member

    Registriert seit:
    7. November 2017
    Beiträge:
    13
    Zustimmungen:
    0
    Danke für den Tip! Nun muss ich nur noch verstehen, was da in der functions.php so alles abgeht...
    Bisher habe ich nur in der Funktion, die "Breadcrumbs" als <li> Punkte in einer <ul> bildet, einen kurzen Eintrag
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    gefunden, das wird es aber wohl eher nicht sein...

    Aber irgendwo muss dieses "is_404" doch auf "true" gesetzt werden, an welcher Stelle im Code passiert das?

    Ansonsten ist in der functions.php glaube ich nichts relevantes mehr, nur noch Abschnitte zum HTML-Minify und zum Emojis, Embeds, responsive images und XML-RPC deaktivieren. Oder vielleicht die Abfrage "is PAGE_CHILD"?

    Was müsste für ein "normales" 404-handling in der functions.php drin stehen?
     
  8. eba.nst

    eba.nst Member

    Registriert seit:
    7. November 2017
    Beiträge:
    13
    Zustimmungen:
    0
    Leider gar nicht, wegen NDA und so... :(
     
  9. eba.nst

    eba.nst Member

    Registriert seit:
    7. November 2017
    Beiträge:
    13
    Zustimmungen:
    0
    So, ich habe jetzt herausgefunden, dass die (bis auf header und footer) "leere" Seite, die angezeigt wird, tatsächlich die "page.php" ist, welche sonst in dem Theme nicht benutzt wird. Es ist aber so, dass sich die URL nicht ändert, also wenn man das Beispiel von Wordpress nimmt und "https://domain.tld/fred.php" eingibt, die es nicht gibt, dann wird zwar die "page.php" geladen (warum?), aber in der Adresszeile des Browsers bleibt "fred.php" stehen. Allerdings wird die existierende page.php per https aufgerufen (und enthält im HTML-Quelltext auch alle Links als https), während sie mit einer nicht existierenden Adresse (z.B. fred.php) komplett alles nur als http-Links darstellt. Wenn ich die Seite als "http://domain.tld" aufrufe, wird aber automatisch auf https umgeleitet (ohne dass das im Hosting-Backend so eingestellt wäre).

    Gibt es eine Möglichkeit herauszufinden, wie es dazu kommt?
     
  10. eba.nst

    eba.nst Member

    Registriert seit:
    7. November 2017
    Beiträge:
    13
    Zustimmungen:
    0
    Der nächste Hinweis: Wenn ich "index.php?error=404" aufrufe, dann komme ich auf die normale index.php, und ?error=404 wird in der Adressleiste angezeigt. Wenn ich jedoch index.php?irgendwasanderes eingebe, bekomme ich einen Umleitungsfehler, also das klassische "redirect-loop".

    Kann mir jemand, der sich mit Wordpress besser auskennt, einen Tipp geben, wo das im Code definiert wird?
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden