Was sind die Regeln, die regeln, welche Entität im Fall widersprüchlicher URL -Pfade „gewinnt“?

magento.stackexchange https://magento.stackexchange.com/questions/4620

Frage

Wenn mehrere Entitäten (z. B. eine Kategorie, ein Produkt, eine CMS -Seite und ein Modul -Frontname) versuchen, dieselbe SEF -URL zu verwenden, wie lautet der Algorithmus oder Prozess, den Magento verwendet, um zu entscheiden, welches in gespeichert wird core_url_rewrite mit dem gewünschten request_path, und über die Suffixe angehängt werden, um den Konflikt zu lösen (z. B. Verkauf-123.html ').

Um die Frage auf andere Weise zu stellen, wenn eine CMS -Seite und eine Kategorie beide nach "Verkauf" als URL fragen, welche wird gewinnen?

War es hilfreich?

Lösung

Alan Storm schrieb einen langen Blog -Artikel darüber:http://alanstorm.com/magento_dispatch_rewrites_intro

Und um es ein wenig zu verkürzen, ist es rund um die Strafe (?)

// Go through all found records and choose one with lowest penalty - earlier path in array, concrete store
    $mapPenalty = array_flip(array_values($path)); // we got mapping array(path => index), lower index - better
    $currentPenalty = null;
    $foundItem = null;
    foreach ($items as $item) {
        $penalty = $mapPenalty[$item['request_path']] << 1 + ($item['store_id'] ? 0 : 1);
        if (!$foundItem || $currentPenalty > $penalty) {
            $foundItem = $item;
            $currentPenalty = $penalty;
            if (!$currentPenalty) {
                break; // Found best matching item with zero penalty, no reason to continue
            }
        }
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top