Komponente Umleitung - Einträge löschen per Datenbank (Stand: Joomla 3)
Oft ist die Datenbanktabelle #__redirect_links mit 1000en Einträgen gefüllt (mehrere MB), wenn man lange nicht in die Joomla-Komponente Umleitung (com_redirect) reingesehen hat oder nur versehentlich das Plugin aktiviert hat, das die 404-Links sammelt. Löschen im Backend kann zeitaufwendig sein, wenn das Auflisten aller Einträge wegen der Serverleistung nicht möglich ist.
Joomla bzw. besser: der Server verabschiedet sich dann radikal oder das Verschieben der Einträge in den Papierkorb funktioniert einfach nicht. Bevor man nun lange in kleinen Häppchen die Links erst in den Papierkorb verschiebt, um sie dann in einem zweiten Lauf in ebenso kleinen Häppchen endgültig zu löschen, ist der Weg über die Datenbank der zeiteffizientere.
19.06.2019: Seit einiger Zeit hat Joomla 3 nun einen Button "Deaktivierte Links löschen", mit dem sich die Datenbank nicht mehr aufhängt. Wie der Name schon sagt, ist er zum Löschen aller deaktiverten Links. Wenn man also lange Zeit "URLs sammeln" aktiviert hatte, aber sich nicht um die gesammelten Einträge gekümmert hat, die richtige Wahl.
18.10.2017: Siehe aber neuen Hinweis unter "Nur die gesperrten löschen".
Gehe in die Joomla-Datenbank, bspw. mit phpMyAdmin, und gebe im Reiter SQL folgenden Code ein, nachdem du darin xyz_ durch das Tabellenpräfix deiner Joomla-Installation (bspw. j25_) ersetzt hast. Deinen Joomla-Präfix findest du verlässlich im Backend unter System > Konfiguration > Server unter den Datenbankeinstellungen. Das Gleiche gilt für den Datenbanknamen, falls unsicher.
Alle außer aktivierte Umleitungen löschen
DELETE FROM `xyz_redirect_links` WHERE `published` IN (0, 2, -2)
In der Klammer sind im Beispiel folgende Stati, die du einzeln rausnehmen kannst (inklusive Komma natürlich), wenn du nur bestimmte Published-Werte davon löschen willst.
- 0 für deaktiviert/gesperrt. Das sind die, die sich im Laufe der Zeit ohne dein Zutun vornehmlich ansammeln.
- 2 für archiviert.
- -2 für trashed ( = Papierkorb)
Alle löschen, auch veröffentlichte / aktive
Wenn du auch die aktiven / veröffentlichten löschen willst, also alle im obigen Beispiel fügst du noch den Status 1 hinzu, mit Komma getrennt.
DELETE FROM `xyz_redirect_links` WHERE `published` IN (0, 2, -2, 1)
Nur die gesperrten löschen
Seit Joomla 3.ich-weiß-nicht gibt es dafür in der Umleitungskomponente einen Knopf "Deaktivierte Links löschen", mit dem sich das Backend auch bei sehr vielen Links nicht mehr aufhängt.
Das sind die, die das Umleitungs-Plugin sammelt.
DELETE FROM `xyz_redirect_links` WHERE `published` IN (0)
Für Codepolizisten: Geht natürlich bei einzelnen Stati auch anders, aber egal, funktioniert auch so.
Sammeln verhindern
Entweder: Das Plugin System - Umleitung deaktivieren unter Menü Erweiterungen > Plugins. Vergisst man leider immer, wenn man eine Seite neu aufsetzt oder als Testseite kopiert, um sie später als Echtseite in Betrieb zu nehmen. Nur dort sollte das Plugin laufen, wenn überhaupt.
Oder: Im Plugin selbst, das Sammeln per Einstellung deaktivieren, falls bspw. Umleitungen angelegt wurden, die zukünftig weiter funktionieren sollen. Im Moment bin ich nicht sicher, ob das bei älteren Joomla-Versionen möglich ist.