Startseite » Blog » Vermischtes
22.09.2016
Collmex-Shop von Altlasten befreien
Die Online-Shop-Funktionalität der Cloud-Lösung von Collmex ist für viele Nutzer eine vollkommen ausreichende Lösung zum Vertrieb ausgewählter Produkte über das Web. Vor allem das einfache Konzept der Generierung statischer HTML-Seiten anhand der Shop-Konfiguration und die Bereitstellung auf dem eigenen Server hat unbestreitbare Vorteile.
Problematisch ist aber bei längerem Betrieb und zwischenzeitlich verändertem Umfang bei Seiten, Kategorien oder Produkten die Tatsache, dass einmal hochgeladene Seiten nicht von selbst vom Server verschwinden, wenn diese nicht mehr benötigt werden. Bei jedem Upload des kompletten Shops werden stets alle aktiven Produkte hochgeladen und aktualisiert. Wenn aber inzwischen aus dem Shop entfernt wurde oder wo Kategoriebezeichnungen oder Dateinamen geändert wurden, bleiben Altdaten auf dem Server zurück.
Umgang mit Altdaten
In der perfekten Welt würde es für die meisten wegfallenden Artikel sinnvolle neue Ziele für dauerhafte Weiterleitungen geben und - da es der Collmex-Shop systembedingt nicht leisten kann - jemand pflegt diese Weiterleitungen auch auf dem Server ein. Das passiert aber in der Realität nicht oder nur in Ausnahmefällen.
So entsteht mit der Zeit ein i. d. R. wachsender Bestand an nicht mehr aktuellen Produktseiten und anderer HTML-Dokumente zu inzwischen umbenannten Kategorien u. Ä., der nicht mehr Teil des aktuellen Shops und seiner Navigation ist. Obschon solche Seiten aus Sicht des Collmex-Shops keine aktiven eingehenden internen Links mehr haben, mögen diese aber immer noch in Suchmaschinen gelistet sein und weiterhin Besucher bekommen. Sehen diese dann aber Produkte, die beim Versuch des Kaufs nicht im Warenkorb landen und / oder durch veraltete Designs und Verweise auf inzwischen entfernte Ressourcen verunstaltete Seiten, führt das normalerweise nicht zu einem Kauf.
Wer sich die Mühe macht, diese Seiten zu identifizieren, kann mit individuellen Weiterleitungen dafür zu sorgen, dass Besucher aufgefangen und weitergeleitet werden, so dass auch die Suchmaschinen die neuen Seiten zu Gunsten der alten URLs in den Index nehmen. Die "nächstbeste" Lösung ist es, regelmäßig auf dem Server aufräumen und HTML-Dateien zu bereinigen. Das sorgt zumindest mittelfristig dafür, dass alte URLs aus dem Index fliegen, weil statt der alten Inhalte ein Fehlercode vom Server zurück kommt. Und es bewahrt Besucher vor häßlichen Seiten oder nicht mehr im Shop verfügbaren Produkten mit längst veralteten Preisen.
Aufräumen per FTP
Der Collmex-Shop nutzt die vom Betreiber angegebenen FTP-Zugangsdaten, um die generierten Shop-Dateien auf dem Server abzulegen. Mit den gleichen Daten kann man sich mit FTP-Clients wie Filezilla & Co. am eigenen Shop-Server anmelden und die enthaltenen Dateien auflisten.
Komplettes Hochladen des Shops
Hat man den Shop gerade komplett hochgeladen und ist der Vorgang abgeschlossen (den Status kann man während des Uploads in Collmex einblenden), befinden sich auf dem Server jede Menge frische HTML-Dateien mit dem aktuellen Datum. Alle anderen HTML-Dateien, die ein älteres Datum aufweisen, sind also potentiell Altlasten, die entsorgt werden können.
Hier nun einfach nach Datum rückwärts alles, was alt erscheint, zu markieren und zu löschen, ist aber nicht zu empfehlen. Erstens liegen auf einem Collmex-Shopserver nicht nur HTML-Dateien, sondern oft auch Ressourcen wie Bilder, Scripts und das CSS-Design im gleichen Verzeichnis wie die HTML-Dateien des Shops, sondern es gibt auch je nach Aufbau des Shops weitere HTML-Dateien dort, die nicht Bestandteil des Collmex-Shops sind und daher auch nicht durch das Hochladen aktualisiert werden.
Im einfachsten Fall sind es z. B. Verifikationsdateien, mit denen man sich als Webmaster des eigenen Servers bei der Google Search Console ausgewiesen hat oder andere Dateien mit ähnlichem Zweck... oder es wird parallel ein weiteres System betrieben, das die Website "jenseits des Shops" beinhaltet; ein auf statischen Seiten basierendes Blogsystem oder Sonstiges.
Unter diesen Bedingungen ist ein manuelles Löschen nicht nur mit Zeitaufwand, sondern auch Risiko behaftet. Vorher die Daten zu sichern und danach nicht entscheiden zu können, ob denn nach dem Löschen wirklich alles funktioniert oder nicht, ist auch keine Ideallösung. Daher wird bei den meisten uns bekannten Collmex-Shops gar nichts gegen verwaiste HTML-Dateien getan. Leider.
Aufräumen per Script
Um einen - nach einmaligem Konfigurationsaufwand - leichteren und sichereren Weg anzubieten, finden Sie hier ein PHP-Script, dass Sie zur regelmäßigen Bereinigung des Servers nach einem kompletten Upload eines neuen Bestands nutzen können.
Es ist im Kern nur wenige Zeilen lang und besteht ansonsten aus einem Minimalgerüst an Layout und Hinweisen zum Eingabe-Formular, die bei der Bedienung helfen sollen. Was die Einrichtung angeht, finden Sie in den Kommentaren in den ersten Zeilen des Scripts eigentlich alles, was erforderlich ist: Es wird ein Kennwort erwartet, damit nicht jeder Zugriff auf diese Funktion hat, der den Dateinamen erraten kann und bietet darüber hinaus noch eine Option zur Gestaltung von Ausschlüssen, um benötigte HTML-Dateien wie doe o. a. Verifikationsdateien etc. bei einem Löschvorgang zu erhalten.
Funktionsweise des Scripts
Das Script listet oder löscht alle Dateien mit der Endung .html im Scriptverzeichnis, die älter als ein angegebenes Datum sind und deren Dateiname nicht mit dem Ausnahmemuster übereinstimmt.
Konfiguration
Während die Definition des Kennworts schnell erledigt ist, mag die Definition der benötigten Ausschlüsse etwas länger dauern. Voreingestellt ist ein Suchmuster, das alle Dateien abdeckt, die "google" oder "drweb" im Dateinamen aufweisen. Während "google" dabei dem Schutz von Verifikationsdateien dient, die z. B. Dateinamen wie google742342394923749.html haben und die man auf vielen Servern antreffen kann, ist der zweite Eintrag eher ein Platzhalter.
Es empfiehlt sich, das Script einfach mit dem bestehenden Ausschlussmuster zu starten und nichts zu löschen, sondern die gefundenen Dateien nur auflisten zu lassen. Sinnvoll funktioniert das aber nur dann, wenn der Shop wie beschrieben zuvor mindestens einmal komplett neu hochgeladen wurde, so dass alle aktuellen Dateien das gleiche Datum aufweisen - das Datum sollte im Zweifelsfall einfach per FTP geürpft werden, wenn dieses nicht bekannt der Upload nicht gerade erst erfolgt ist, so dass man das vorgegebene aktuelle Tagesdatum übernehmen kann.
Je nach Umfang der nach dem Start des Vorgangs zurückgemeldeten Dateien kann es etwas länger dauern, die Dateien zu identifizieren, die man erhalten möchte / muss und daraus ein Suchmuster zu erzeugen. Der im Kommentar beschriebene Weg der Aneinanderreihung von einzelnen Teilzeichenketten ist dabei nur eine mögliche Option - wer sich mit Regulären Ausdrücken auskennt, mag hier effizientere Wege finden. Nach dem Eintragen / Anpassen des Musters im Script kann dieses jeweils erneut zum Auflisten der Dateien genutzt werden... solange, bis man im Suchergebnis nur noch HTML-Dateien findet, bei denen man sicher sein kann, dass es sich um veraltete Collmex-Shop-Dateien handelt.
Löschen durchführen
Nach diesem Eingangsaufwand ist das Löschen selbst schnell erledigt, indem man die Aktion von "Auflisten" auf "Löschen" umstellt und den Vorgang startet. Die gelöschten Dateien und deren Anzahl werden auf der Ergebnisseite ausgewiesen - das war es dann auch schon. Geschützt durch das Kennwort und ggf. umbenannt kann das PHP-Script dann entweder auf dem Server verbleiben oder nur bei Bedarf via FTP hochgeladen, genutzt und wieder vom Server entfernt werden, um regelmäßig nach einem Upload des aktualisierten Collmex-Shops eine Bereinigung durchzuführen.
Script herunterladen
Das Script wird über GitHub bereitgestellt und dort bei Bedarf ggf. auch aktualisiert. Hier finden Sie stets die aktuelle Fassung.