Shopseite - Custom page not found

Hallo, wenn ich auf meiner Shopseite für die AGB’s auf Englisch umschalte, kommt die Fehlermeldung „Page not found“ und im Log steht „Custom page not found“. Es sieht so aus, als wenn beim umschalten die deutsche URL (…/agb/) statt der englischen (…/terms-conditions/) aufgerufen wird.

Wo kann man diese Zuordnung einstellen. Bei allen anderen Shopseiten klappt das problemlos und ich kann keinen Unterschied in den Einstellungen finden?

Viele Grüße, Frank

1 „Gefällt mir“

… wie es aussieht, gibt es ein Problem mit der Tabelle s_core_rewrite_urls:

Seiten, die sich korrekt umschalten lassen, haben diese Einträge:

mysql> select * from s_core_rewrite_urls where org_path='sViewport=custom&sCustom=6';
+--------+----------------------------+----------------------------------+------+-----------+
| id     | org_path                   | path                             | main | subshopID |
+--------+----------------------------+----------------------------------+------+-----------+
|   2356 | sViewport=custom&sCustom=6 | Versand-und-Zahlungsbedingungen  |    0 |         3 |
|   3147 | sViewport=custom&sCustom=6 | Versand-und-Zahlungsbedingungen  |    0 |         1 |
|   3208 | sViewport=custom&sCustom=6 | Terms-of-shipping-and-payment    |    0 |         3 |
| 175636 | sViewport=custom&sCustom=6 | Versand-und-Zahlungsbedingungen/ |    1 |         1 |
| 175808 | sViewport=custom&sCustom=6 | Terms-of-shipping-and-payment/   |    1 |         3 |
+--------+----------------------------+----------------------------------+------+-----------+
5 rows in set (0.00 sec)

die betroffene AGB-Seite hat diese Einträge:

mysql> select * from s_core_rewrite_urls where org_path='sViewport=custom&sCustom=4';
+--------+----------------------------+-------------------+------+-----------+
| id     | org_path                   | path              | main | subshopID |
+--------+----------------------------+-------------------+------+-----------+
|   3146 | sViewport=custom&sCustom=4 | AGB               |    0 |         1 |
|   3207 | sViewport=custom&sCustom=4 | Terms-Conditions  |    0 |         3 |
| 175635 | sViewport=custom&sCustom=4 | AGB/              |    1 |         1 |
| 175807 | sViewport=custom&sCustom=4 | Terms-Conditions/ |    1 |         3 |
+--------+----------------------------+-------------------+------+-----------+
4 rows in set (0.00 sec)

da fehlt offenbar die erste Zeile? Kann man die Tabelle irgendwie löschen/reorganisieren?

Eigentlich gar nicht, das regelt der Shop selber. Oder ein extra SEO-Plugin einsetzen, dann wäre es einstellbar. Ich würde versuchen noch einmal den Cache komplett zu löschen und SEO-Index neu aufbauen zu lassen. Ich sehe jetzt so keinen Fehler.

Habe jetzt den Cache komplett gelöscht und den SEO-Index neu aufgebaut. Das Problem besteht immer noch?

Was passiert eigentlich, wenn man die s_core_rewrite_urls komplett leert? Wird die danach automatisch neu erstellt?

Ich hatte versucht, die fehlende Zeile einfach einzufügen:

mysql> insert into s_core_rewrite_urls (org_path, path, main, subshopID) values('sViewport=custom&sCustom=4', 'AGB', 0, 3);

Da bekomme ich folgenden Fehler zurück:

ERROR 1062 (23000): Duplicate entry 'AGB-3' for key 'path'

Das sieht für mich aus, als wenn die Tabelle/Index kaputt ist. Der unique-Key liegt auf den Feldern path+subShopID und die gewünschte Kombination ist eigentlich noch nicht vorhanden (s.o.). Deswegen die Idee mit der Reorganisation von Tabelle+Index?

Nein, das ist auch nicht korrekt. Nur Einträge mit „main“ = 1 werden berücksichtigt - main = 0 macht also keinen Sinn.

okay :thinking:. Ich habe mal in meinem Demo-Shop (Standard) nachgeschaut. Da sind übrigens auch viele Einträge mit „main=0“ drin. Was haben die für einen Sinn?

Sind alte bzw. nicht aktive Einträge. Ob man das alles „problemlos“ löschen kann hab eich so noch nicht ausprobiert. Solltest du das testen, dann mach für alle Fälle ein DB Backup!

Ja klar, sowieso! Ich bin da immer vorsichtig :wink:.

Danke erstmal.

In der Doku von Shopware steht allerdings:

Leere niemals die Tabelle s_core_rewrite_urls, da ansonsten alle gespeicherten 301-Weiterleitung gelöscht werden und nachfolgend jede Menge 400er-Fehler in Deinem Shop aufschlagen werden.

:upside_down_face: Na prima. Wie löse ich das Problem nur? Vielleicht eine neue Shopseite für die AGB’s anlegen? Aber schon schade, dass es für das Problem offenbar keine Erklärung gibt?

Ich hatte (glaube) mal ein ähnliches Problem. Habe die alten Einträge mit main 0 gelöscht (mach generell ein Backup), dann etliche male Cache komplett entfernt und SEO-Index neu aufgebaut. Nach einer Weile war das Problem weg.

Hm, ich muss mir das in meinem Testshop mal ansehen …

Danke Dir für Deine Mühe :+1:. Das sind immer so Themen, wo ich mich frage, ob ich der erste bin, der so ein Problem hat. Frage mich auch, wie andere sowas fixen. Da geht soviel Zeit verloren und am Ende ist es meistens was ganz billiges. Aber naja, man lernt dazu …

Habe das mal eben durchgespielt. Also Shopseite „AGB“ aufgerufen, beim Titel auf die Weltkugel geklickt und dort „Terms-Conditions“ eingetragen. Bin dann zum Cache bzw. zur Seite SEO-Index neu aufbauen. Dort die Sprache Englich ausgewählt und Index neu aufbauen lassen. In der DB steht der neue Link korrekt drin, alles funktioniert.

Hast du vielelicht den SEO Index nur bei Deutsch gemacht?

der Link steht ja korrekt in der Datenbank:

mysql> select * from s_core_rewrite_urls where org_path='sViewport=custom&sCustom=4';
+--------+----------------------------+-------------------+------+-----------+
| id     | org_path                   | path              | main | subshopID |
+--------+----------------------------+-------------------+------+-----------+
|   3146 | sViewport=custom&sCustom=4 | AGB               |    0 |         1 |
|   3207 | sViewport=custom&sCustom=4 | Terms-Conditions  |    0 |         3 |
| 175635 | sViewport=custom&sCustom=4 | AGB/              |    1 |         1 |
| 175807 | sViewport=custom&sCustom=4 | Terms-Conditions/ |    1 |         3 |
+--------+----------------------------+-------------------+------+-----------+
4 rows in set (0.01 sec)

den SEO-Index habe ich für Deutsch & Englisch neu aufgebaut.

Komisch, sieht bei mir nicht anders aus, wobei bei mir kein „/“ am Ende steht.

mysql> select * from s_core_rewrite_urls where org_path='sViewport=custom&sCustom=6';
+--------+----------------------------+----------------------------------+------+-----------+
| id     | org_path                   | path                             | main | subshopID |
+--------+----------------------------+----------------------------------+------+-----------+
|   2356 | sViewport=custom&sCustom=6 | Versand-und-Zahlungsbedingungen  |    0 |         3 |
|   3147 | sViewport=custom&sCustom=6 | Versand-und-Zahlungsbedingungen  |    0 |         1 |
|   3208 | sViewport=custom&sCustom=6 | Terms-of-shipping-and-payment    |    0 |         3 |
| 175636 | sViewport=custom&sCustom=6 | Versand-und-Zahlungsbedingungen/ |    1 |         1 |
| 175808 | sViewport=custom&sCustom=6 | Terms-of-shipping-and-payment/   |    1 |         3 |
+--------+----------------------------+----------------------------------+------+-----------+
5 rows in set (0.00 sec)

Bei Versand & Zahlung klappt es problemlos. Hier steht der Slash auch am Ende?

Hallo,

ich will das Thema nochmal kurz aufwärmen. Habe die AGB-Seite mal deaktiviert, eine neue Seite angelegt und die Inhalte inkl. Übersetzung übernommen. Danach klappte die Umschaltung. Wenn ich jetzt aber den SEO-Index neu erzeuge, habe ich danach das gleiche Problem. Woran kann dass liegen?

Viele Grüße, Frank

Verstehe ich nicht! Welche SW Version habt ihr denn im Einsatz? Ich habe es mit SW 5.7.11 getestet.

ist zugegebenermaßen eine ältere Version (5.6.1), aber der Shop kann aus anderen Gründen nicht aktualisiert werden. Außerdem klappt es ja mit den anderen CMS-Seiten problemlos.

Mal ne andere Frage: Wie werden bei der SEO-Index Erstellung die Links gebildet. Kann es sein, dass SW sich da an irgendwelchen Zeichen in der Überschrift stört. Da ist nämlich ein & (Terms & Conditions) drin?