WordPress 404 Seite leitet auf Startseite um – Wie behebe ich den Fehler?

404 wordpress fehler fixen titelbild
Inhalt

Ich hatte seit längerem mit folgendem WordPress Fehler zu kämpfen und keine Lösung gefunden: Alle nicht vorhandenen Seiten wurden automatisch auf die Startseite umgeleitet. Alle Einstellungen in WordPress zur 404 Seite waren korrekt.

Nach langer Suche nun die Lösung, die ich an der Stelle kurz festhalte. Die Seite war Teil einer WP Multisite. Und dort gibt es eine kleine Einstellung in der WP-Config names NOBLOGREDIRECT. Hier nun die ausführliche Lösung, dass 404-Fehlerseite wieder korrekt angezeigt wird – um fehlerhafte Seiten zu tracken, was vorher nicht möglich war.

Multisite und NOBLOGREDIRECT

Eine kleine Erklärung für diejenigen, die nicht wissen, was NOBLOGREDIRECT ist.

Das define(‘NOBLOGREDIRECT’, ‘%siteurl%’); Innerhalb der wp-config.php sorgt dafür, dass wenn jemand eine Subdomain aufruft, die auf Ihrer Website nicht existiert, zu der von Ihnen gewünschten URL weitergeleitet wird.

Damit wird man entweder zu einer bestimmten Unterseite oder direkt zurück zur Haupt-Root-Installation weitergeleitet. %siteurl% kann zum Beispiel ersetzt werden mit define(‘NOBLOGREDIRECT’, ‘https://tikoim.de/FAQ/site-create’);

Wenn jemand in seinem Browser versucht, zu https://seltsamesubdomain.tikoim.de/ zu wechseln, einer Subdomain, die nicht existiert, wird er zu dem weitergeleitet, was in NOBLOGREDIRECT definiert ist.

Ohne die Verwendung von NOBLOGREDIRECT würde (zum Beispiel) https://seltsamesubdomain.tikoim.de/ – eine Subdomain, die nicht existiert – auf die Anmeldeseite verweisen und fragen, ob der Benutzer die betreffende fehlerhafte Subdomain erstellen kann oder nicht.

Daran ist nichts falsch, der Nutzer kann durchaus auf die Startseite umgeleitet werden. Darum nutzt man NOBLOGREDIRECT.

Wo liegt nun das eigentliche Problem mit dem Redirect?

Dies geschieht bei der Nutzung von NOBLOGREDIRECT und bei Ihrer normalen Nutzung der Hauptseite. Das schlechte Verhalten liegt vor, wenn jemand auf der normalen Website eine Seite aufruft, die nicht existiert.

Zum Beispiel https://tikoim.de/dieSeiteexistiertNicht/ ; Anstatt zur 404-Seite der Site (der Vorlage „Seite nicht gefunden“) umzuleiten, werden Sie zu dem weitergeleitet, was in NOBLOGREDIRECT angegeben ist.

Und, wo ist das Problem? Das Verhalten der Umleitung von 404-Seiten ist eine alte Funktion von WPMU, die nicht mehr existieren sollte, jedoch beibehalten wurde, als WPMU mit WordPress selbst zusammengeführt wurde.

Was kann getan werden, um das Verhalten zu beheben, sodass wieder 404-Seiten ausgegeben werden? Nun, das ist ganz einfach: Sie deaktivieren einfach den Aufruf der Funktion, die diese 404-Fehler umleiten würde.

Den 404-Redirect wieder aktiviert bei der Multisite mit WordPress

Fügen Sie in Ihrem Ordner /wp-content/mu-plugins/ (wenn Sie keinen haben und Multisite verwenden, können Sie ihn manuell erstellen) eine Datei „custom.php“ hinzu und fügen Sie eine Zeile hinzu, um die Aktion zu deaktivieren.

Erstellen Sie beispielsweise eine Datei mit dem Namen „custom.php“ und fügen Sie sie in das Verzeichnis /wp-content/mu-plugins/ ein.

custom.php

 <?php
 remove_action( 'template_redirect', 'maybe_redirect_404' );
 ?>


Die Funktion, die das Verhalten verursacht, 404-Seiten nicht ordnungsgemäß weiterzuleiten, ist Maybe_redirect_404() und wird als add_action aufgerufen. Damit die Funktion nicht ausgeführt wird, entfernen wir add_action mit „remove_action“.

Wenn Sie die Datei „custom.php“ (eine Datei, die wir gerade erstellt haben) im Ordner „mu-plugins“ ablegen, bedeutet dies, dass sie jederzeit automatisch aktiviert wird und ausgeführt wird.

Jetzt werden diese 404-Seiten auf die Vorlage „404-Seite nicht gefunden“ für Ihr Theme umgeleitet, und eingegebene fehlerhafte Subdomains werden an die Stelle weitergeleitet, die Sie im NOBLOGREDIRECT angegeben haben.

HINWEIS: In seiner ursprünglichen Absicht ist NOBLOGREDIRECT nützlich, um auf einen „anderen“ Ort zu verweisen, wenn eine Anmeldeseite erforderlich ist, anstatt an eine 404-Seite zu senden.

Die Namenskonvention für die Definition ist jedoch irreführend, was dann zu Missverständnissen beim Endbenutzer führt. Obwohl ich immer noch keine Ahnung habe, warum irgendjemand wollen würde, dass die Anmeldeseite auf einem 404-Fehler angezeigt wird, tun es die Multisite-Typen offensichtlich, weil sie immer noch argumentieren, dass es gültig ist.

englischsprachige Quelle: NOBLOGREDIRECT explained and fix · GitHub

1 Kommentar
  1. Super! Genau das Problem hatte ich auch mit meiner WordPress-Seite. Die Lösung mit der „custom.php“-Datei hat geholfen. Vorher bin ich bei 404-Fehlern immer auf die Startseite umgeleitet worden, was total nervig war. 👍

Hinterlasse einen Kommentar

Weitere Blogbeiträge
Tikoim.de
Logo
Artikel vergleichen
  • Testergebnis (0)
Vergleichen