Wie alle 404-Seiten zur Startseite umleiten?

Hallo,

Ist es möglich, alle defekten 404-Seiten automatisch auf die Startseite oder eine andere Seite umzuleiten?

Mit freundlichen Grüßen

3 „Gefällt mir“

Da Discourse keine htaccess verwendet, bin ich mir nicht sicher, wo ich nach einer Lösung suchen soll. Jede Hilfe wäre willkommen :slight_smile:

Ich schätze, Sie könnten ein Plugin erstellen, um das zu erreichen?

Es könnte verwirrend sein, sofort weiterzuleiten, warum also nicht die 404-Route nach kurzer Zeit mit einer entsprechenden Meldung zum Start weiterleiten?

Das könnte funktionieren, aber ich weiß nicht, wie das geht :confused:

Gibt es dafür ein Plugin?

Ich bezweifle es. Du könntest #Marktplatz

Htaccess sollte sowieso nicht verwendet werden, selbst wenn Apache2 vor Discourse stünde – und das tut es nicht.

Docker macht das Leben komplizierter :wink: und ich weiß nicht, wie ich damit umgehen soll. Aber Sie können Nginx (oder was auch immer Server/Reverse-Proxy) vor Discourse stellen, wenn Sie möchten. Und dann sollte eine solche Umleitung eine ziemlich triviale Aufgabe sein. Sie können so etwas tun:

Aber warum sollten Sie überhaupt 404s zur Startseite umleiten? Wenn ein Benutzer nach etwas sucht und stattdessen die Startseite anstelle des Gewünschten oder eine 404 erhält, ist das etwas verwirrend. Und danach wird derselbe Benutzer es erneut versuchen, weil er vielleicht etwas falsch gemacht hat oder die Website ein Problem hatte. Völlig unnötig und es gibt einen Grund, warum jede Website stattdessen einen Fehler 404 anzeigen sollte und keine seltsame Umleitung.

Ich migriere meinen WordPress-Blog zu Discourse. Aufgrund der unterschiedlichen Linkstruktur wird es nach der Migration unzählige 404-Seiten geben. Ich kann nicht jede einzelne manuell umleiten, daher benötige ich eine Lösung, um dies automatisch zu tun.

Ja, aber das ist keine Lösung. Das ist eine schlechte Behebung, nichts weiter. Ihre URL-Struktur wäre immer noch kaputt, aber Sie verstecken sie nur. Und nein, Sie können den SEO-Wert nicht auf diese Weise übertragen ;)\n\nWie auch immer – dann haben Sie dort einen Server. Versuchen Sie, ihn zu benutzen?

Wenn Sie eine andere Subdomain für die WordPress- und Discourse-Sites verwenden würden, könnten Sie dies wahrscheinlich auf der Serverseite von WordPress tun.

Es ist möglich, page_not_found.title (ursprünglich „Ups! Diese Seite existiert nicht oder ist privat.“) zu ändern – es ist schade für Sie, dass es nichts wie page_not_found.content gibt, das es Ihnen ermöglichen würde, die Situation im Detail zu erklären.

1 „Gefällt mir“

Gibt es die Admin-Einstellung detailed 404, falls das nützlich ist?

Diese Option beinhaltet keine Umleitung, wenn ich mich nicht irre.

Worauf auch immer diese Links verweisen… werden sie zu Discourse migriert? Wenn diese Links beispielsweise auf Blogbeiträge verweisen, die Sie in Themen umwandeln, könnten Sie Permalinks erstellen: Redirect old forum URLs to new Discourse URLs using permalinks

Sie könnten diese URLs auch auf etwas anderes umleiten. Angenommen, die URLs haben eine gemeinsame Formatierung, könnten Sie REGEX und den Befehl remap verwenden, um sie zu ersetzen:

remap [--global,--regex] FROM TO

Ein Beispiel für die Verwendung des Befehls:

discourse remap --regex "[/?color(=[^\]]*)*]" "" # Entfernt "color" bbcodesc
1 „Gefällt mir“

Außer dass dies auf dem WordPress-Server geschehen muss, wenn man Google UND die Benutzer glücklich machen will.

1 „Gefällt mir“

5 Beiträge wurden in ein neues Thema aufgeteilt: Wie leite ich nach der Themenlöschung zur Startseite um?

Sie können alle defekten 404-Seiten über die Funktion “Anpassen” zur Homepage oder zu einer anderen Seite umleiten.
Gehen Sie zum Abschnitt Anpassen > Themes > Neues Theme erstellen > Benennen Sie Ihr Theme z. B. 404 Umleitung und setzen Sie das Basistemplate auf Standard.
Erstellen Sie dann das neue Theme > CSS/HTML bearbeiten. Erstellen Sie im HTML-Abschnitt einen JavaScript-Schnipsel, der die Umleitung handhabt.
Fügen Sie diesen Code ein.

<script type="text/discourse-plugin">
  api.onPageChange((url, title) => {
    // Leitet alle 404-Seiten zur Homepage um
    if (url.includes('/404')) {
      window.location.href = '/';
    }
  });
</script>

Bitte passen Sie Ihren Seitennamen nach Bedarf an. Lesen Sie dies alte URL auf neue Discourse-URL umleiten