Каковы правила, которые регулируют, какие сущности «выигрывают» в случае противоречивых путей URL

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

Вопрос

Если несколько сущностей (например, категория, продукт, страница CMS и подводное имя модуля) пытаются использовать один и тот же URL -адрес SEF, какой алгоритм или процесс, который Magento использует, чтобы решить, что будет сохранено в core_url_rewrite с желанием request_path, и которые будут иметь суффиксы, добавленные для разрешения конфликта (например, продажа 123.html ').

Чтобы задать вопрос по -другому, если страница и категория CMS запрашивают «продажу» в качестве их URL, который выиграет?

Это было полезно?

Решение

Алан Сторм написал длинную статью в блоге об этом:http://alanstorm.com/magento_dispatch_rewrites_intro

И, чтобы немного сократить это, все вокруг штрафа (?)

// 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
            }
        }
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top