Bei Problemen mit Produkt URLs lohnt sich oft ein direkter Blick in die Tabelle url_rewrite. Dort speichert Magento unter anderem die sichtbaren Pfade, internen Ziele und Weiterleitungen eines Produktes.
Die URL Rewrites einer bestimmten SKU lassen sich mit folgender Abfrage anzeigen:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SELECT p.sku, u.store_id, s.code AS store_code, s.name AS store_name, u.request_path, u.target_path, u.redirect_type FROM url_rewrite AS u JOIN catalog_product_entity AS p ON u.entity_id = p.entity_id LEFT JOIN store AS s ON s.store_id = u.store_id WHERE u.entity_type = 'product' AND p.sku = 'MEINE-SKU' ORDER BY u.store_id, u.request_path; |
request_path enthält die im Shop sichtbare URL, während target_path auf das interne Magento Ziel verweist. Über store_id bzw. store_name lässt sich erkennen, für welche Store View der jeweilige Rewrite gilt.
Mehrere Treffer für dasselbe Produkt sind deshalb nicht automatisch doppelte oder fehlerhafte Einträge. Unterschiedliche store_id Werte bedeuten in der Regel, dass Magento für verschiedene Store Views eigene Rewrites führt.
Interessant ist außerdem redirect_type. Der Wert 0 steht für einen normalen Rewrite ohne Weiterleitung, 301 und 302 entsprechend für permanente beziehungsweise temporäre Weiterleitungen.
Gerade nach Änderungen am URL Key, Migrationen oder Importen lässt sich damit schnell erkennen, welche Rewrite Einträge Magento für ein Produkt tatsächlich gespeichert hat.