[GELÖST] Seo-Urls für Produktdetailseiten fehlerhaft

Die Einträge in der Datenbank werden Case-Sensitiv angelegt, im Frontend werden die Links in Lowercase angezeigt. Komischerweise funktionieren die Links nur teilweise. Beispiel: my.host/desktop-pc/barebones/media/intel/8646/shuttle-xpc-x50v3-schwarz-39-6cm-15-6-touchscreen?c=720 (SW-Frontendlink, geht nicht, 404) my.host/Desktop-PC/Barebones/Media/Intel/8646/Shuttle-XPC-X50V3-schwarz-39-6cm-15-6-Touchscreen?c=720 (Gegenprobe mit Datenbankeintrag, geht) (Die Tabelle „s_core_rewrite_urls“ ist komplett generiert) Der Ansatz der Url-Generierung ist nicht praktikabel, da hier anscheinend nach Löschen des Caches die Urls pro Frontendrequest nur in 1000er Häpchen generiert werden (php_ini max_execution_time …). Wenn der Shop 10.000 Artikel hat, ist dies ein Problem. Bug? Gruß, Boris

Hi Boris, um das Problem mit den fehlerhaften SEO-Urls zu lösen, müsstest du einmal in der .htaccess-Datei diese Zeile: RewriteCond %{REQUEST_URI} !(/(engine|files|templates|media/[a-z]+)/) Durch diese beiden Zeilen ersetzten: RewriteCond %{REQUEST_URI} !(/(engine|files|templates)/) RewriteCond %{REQUEST_URI} !(/media/.*.\w{3}$) Das mit den 1000-Urls pro Request sollte eigentlich doch kein Problem sein, da neue Urls immer sofort erzeugt werden. Den Cache leeren sollte man nur, wenn man z.B. Kategorien umbennent oder verschiebt. Heiner

1 „Gefällt mir“

Hallo Heiner, danke für die Antwort. Böse Falle. Ich denke, folgende Änderung wäre noch effektiver: RewriteCond %{REQUEST_URI} !(/(engine|files|templates|media/[a-z]+)/) ersetzen mit: RewriteCond %{REQUEST_URI} !(^/(engine|files|templates|media/[a-z]+)/) Damit wirkt sich die Ausnahmeregel nur auf das erste Pfadsegment aus. Der (unwahrscheinliche) Konflikt (mit Kategorie oder CMS-Seite) würde damit nur dort passieren. Grüße, Boris