Gibt es eine Möglichkeit, defekte Links zu identifizieren und gleichzeitig zu beheben?
Hallo Kevin ![]()
Kannst du einen „defekten Link“ in deinem Kontext definieren?
Ist es:
-
Ein Link in einem Beitrag eines Benutzers?
-
Ein interner Link?
-
Ein externer Link?
-
Ein Link, der zu einer Ressource führt, die nicht mehr existiert (404)?
-
Ein Link, der nicht mehr zur gleichen Ressource führt wie zuvor?
Woher weißt du, ob ein Link vorübergehend „defekt“ ist (z. B. weil das Ziel aus irgendeinem Grund vorübergehend nicht erreichbar ist)? Ein Link kann für ein paar Minuten, Stunden, Tage oder Wochen tot sein und dann wieder funktionieren.
Er kann entfernt, geändert, aktualisiert, relevant oder nicht mehr relevant sein. Woher weißt du das?
Was ist eine Reparatur eines defekten Links?
-
Eine Linkentfernung?
-
Ersetzen der URL durch eine andere?
-
Woher weißt du, wie du einen defekten Link durch einen relevanten, funktionierenden ersetzen kannst?
Wie auch immer, du würdest dafür ein benutzerdefiniertes Skript benötigen: Es gibt keine solche integrierte Funktion. ![]()
Es ist nicht meine Aufgabe zu antworten, aber ganz allgemein im Webistan ist ein defekter Link ein Link, der mit 404 beantwortet wird, egal ob er intern oder extern ist (sicherlich ist ein interner oft eine alarmierende Situation).
Und eine Lösung kann jede davon sein.
Eine Liste von 404ern erhalten und dann entweder die URL korrigieren oder den <a>-Tag entfernen? Das ist eine ziemlich gängige Methode auf allen anderen Plattformen, die ich benutze.
Gibt es ein Tool, das Sie zur Überprüfung und Behebung defekter Links empfehlen können?
Ich stimme zu, dass dies am häufigsten vorkommt, aber es wirft Probleme auf, wie z. B. temporäre 404s.
Du bist schon lange genug hier, um zu wissen, dass jede Meinung geschätzt wird ![]()
(Mein Job ist es auch, Leuten ihre Meinung zu sagen, übrigens)
Diese sollten nicht verwendet werden. Es sollte zuerst ein 302 sein, der zu einer (generischen) URL führt, auf der die Situation erklärt wird, und wenn sie nicht mehr temporär ist, ändert sie sich zu 200, 301 oder 410.
Aber wenn Beiträge Links verwenden, die temporäre 404s ergeben, ist das ein bekannter Edge Case. Die häufigsten sind tatsächliche ausgehende tote Links, die behoben werden sollten.
Die gute Nachricht ist, dass diese ziemlich selten geöffnet werden, schätze ich.
Ja
Nun, ich meinte, ich habe quasi im Namen des OP geantwortet, und das ist keine sehr höfliche Handlung.
Nun, in meinem Fall wurden defekte Links verursacht, als der Kunde eine kleine Domainänderung von “.ai” zu “.com” vornahm. Alle Nachrichtenlinks im Forum wurden defekt. Ich bin mir sicher, dass es wahrscheinlich einen einfacheren Weg gab, dies zu beheben. Aber ich habe viele Beiträge manuell bearbeitet, um “.ai” in “.com” zu ändern. Außerdem musste ich HTML neu aufbauen, um hochgeladene Bilder in Beiträgen zu reparieren. Ziemlich lästig.
Sie können die Suche und den Ersatz über die Rails-Konsole durchführen, oder?
Wahrscheinlich, aber bei vielen Dingen mit Discourse noch ziemlich neu. Muss mich einlesen und mehr lernen. Würde so etwas hochgeladene Bilder in Beiträgen reparieren? Es schien auch Emojis in älteren Beiträgen zu beeinträchtigen. Sie hätten ehrlich mit mir darüber sprechen sollen, da sie die Seite schon einmal umbenannt hatten, als das gleiche Problem auftrat. Meiner Meinung nach gab es keinen Bedarf oder wirklichen Vorteil, von .ai auf .com zu wechseln, da die Seite seit über 3 Jahren unter .ai läuft.
Außerdem ist jede App, die ein Benutzer installiert hatte, kaputt gegangen, und dasselbe gilt für andere, die die ursprüngliche URL verwendet haben, um auf die Seite zuzugreifen.
In Discourse gibt es keine solche Funktion, und das Erkennen von „defekten Links“ (wir gehen von 404 aus) würde ein benutzerdefiniertes Skript erfordern.
Meiner Meinung nach gäbe es eine Reihe von Eigentümern, insbesondere von größeren Websites, die an einem Tool/Skript/Plugin interessiert wären, das zumindest den ersten Schritt des einfachen Überprüfens und Identifizierens von 404ern durchführen könnte? Ich wäre bereit, dies mit etwas Geld zu unterstützen, wenn es einigermaßen vernünftig ist.
Die erste Lösung, die mir in den Sinn kommt, wäre ein Rail-Skript, das die Post-Inhalte durchläuft, Links findet, sie anfordert, den Statuscode prüft und das tut, was Sie brauchen. Löschen, ersetzen (solche Aktionen erfordern ein erneutes Backen), protokollieren… ![]()
WordPress vs. Discourse ist ein ziemlich nutzloser Vergleich, da Technologie und Idee so unterschiedlich sind, aber auf WordPress ist es eine ziemlich triviale Aufgabe, ein kostenloses Plugin zu verwenden, das ausgehende Links aufruft und wenn die Antwort etwas anderes als 200 OK ist, bereinigt es zumindest Links, die einen 4xx-Status erhalten, erstellt eine Liste und informiert den Administrator per E-Mail.
Ist das überhaupt in solchen Apps wie Discourse möglich, weiß ich nicht. Ist eine solche Funktionalität notwendig… ich weiß nicht, denn niemand kümmert sich mehr darum und die Aussage „gute Links sterben nie“ hat sich zu „alle Links werden zu Zombies“ geändert. Wikipedia ist voller toter Links, und niemand kümmert sich darum, nicht einmal Wikipedia oder die Redakteure.
Wir haben so etwas wie Flags. Wir können die Benachrichtigung an Benutzer auslagern und ihnen beibringen, wie sie Flags informativ nutzen können – aber ich wette, es wird schwierig sein.
Seien wir ehrlich. Nur wenige Administratoren/Moderatoren sind bereit, Links zu reparieren, die nach der Veröffentlichung nie wieder verwendet werden. Ein „Link-Tester“ wäre also schön zu haben, aber ist es ein nützliches Werkzeug? Meine größte WordPress-Seite hat Unmengen toter ausgehender Links. Diese sollten repariert werden und ich werde sie reparieren, wenn ich sie brauche, aber ansonsten… Ich habe einfach keine Zeit (oder Lust…).
Ein Linkprüfer wäre großartig! Unsere Discourse-Instanz ist nicht öffentlich, daher kann ich kein typisches Tool dafür verwenden. Sie wird als Support-Forum und Wissensdatenbank genutzt, daher gehen wir davon aus, dass wir im Laufe der Zeit mit Links zu externer Dokumentation zu tun haben werden, die kaputt gehen.