Hintergrund
Ein Kunde hat ein altes Shopsystem mit ca. 4000 Produkten zu Shopware 5 migriert. Die alten Produkt-URLs müssen aber zu den Neuen mit HTTP 301-Status weitergeleitet werden. Da es kein klares Muster für alte und neue URLs gibt, hat er ein von Hand eine entsprechen lange .htaccess-Datei erstellt, was keine gute Idee war, da diese den Server überlastet und in jedem Fall sehr schlecht für die Performance wäre. Ich werde die Datei also einlesen und via PHP in einen großen Array verwandeln oder auch in eine eigene Datenbank-Tabelle übertragen. Der Teil ist unproblematisch und nur Hintergrund zur Frage.
Frage
Wie kann ich möglichst einfach eine Funktion schreiben, die von Shopware aufgerufen wird, wenn Shopware eine aufgerufene URL nicht kennt und entsprechend die 404-Seite anzeigen würde? Wichtig ist, dass die Funktion aufgerufen wird, bevor der Server eine Antwort sendet, so dass ich selbst prüfen kann, ob die angeforderte URL zum alten Shop gehört, um dann eine 301-Weiterleitung (mit Standard-PHP header()) zu machen und das Script zu beenden. Der Code soll Update-Sicher sein, d.h. ich vermute nach kurzem Blick in die Dokumentation, dass ich hier ein Plugin schreiben müsste, und dann auf einen 404 Event lauschen bzw. einen Hook registrieren muss.
Um Missverständnisse zu vermeiden: Ich bein kein Shopware-Programmierer, und werde danach voraussichtlich auch nichts mehr mit dem Shop bzw. Shopware zu tun haben, d.h. ich möchte mich nicht in das System einlesen und einarbeiten, sondern bräuchte wirklich nur die „magische Zeile(n)“, um meinen eigenen Code so in Shopware zu integrieren, dass im Falle eines 404-Events eine von mir geschriebene Funktion, nennen wir sie checkUrlForRedirect(), aufgerufen wird. Toll wäre, wenn der Code auch bei Shopware 6 funktionieren würde, aber das wäre Bonus. Danke schonmal für jeden Hinweis!