Webseiten und ZubehörProgrammierung UmsetzungPflege Backups BetreuungJoomla-Spezialist

JoomlaSchnipsel

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.

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.

Komponente Joomla Datenbank SQL