Кажется, что Shopware имеет некоторое "волшебство" при создании URL-адресов, и я ищу кого-то, кто может объяснить это мне.
Это код стандартного шаблона для генерации SEO-urls с переменными, которые можно настроить в настройках SEO-маршрутизатора в бэкэнд
{* Product name *}
{block name='frontend_listing_box_article_name'}
<a href="{$sArticle.linkDetails|rewrite:$sArticle.articleName}"
class="product--title"
title="{$sArticle.articleName|escape}">
{$sArticle.articleName|truncate:50}
</a>
{/block}
Конфигурация в настройках SEO-router выглядит по умолчанию:
В любом случае, выход немного отличается:
http://www.DOMAIN.de/shop/CATEGORYNAME/18/PRODUCTTITLE?c=7
(Все заглавные буквы демонстрируют реальные правильные имена доменов, категорий и продуктов, которые скрыты здесь ради конфиденциальности моего клиента)
Проблема здесь - это URL-параметр "? c = 7", который не нужен и должен быть опущен, как определено в параметрах SEO-router.
Первый вопрос: как опустить этот URL-параметр "c = 7" в конце URL-адреса?
Когда я отлаживаю этот код, я сталкиваюсь с странными вещами. Следующий код приведет к двум различным URL-адресам, хотя это один и тот же термин:
Вот эти проблемы:
Второй вопрос:
Как может тот же шаблон-шаблон быть таким разным? Какая магия работает за кулисами?
Я уверен, что вы знакомы с бэкэндом Shopware. Краткие ответы на мои вопросы:
Установите 'Remove CategoryID из Url = No' в настройках Seo/router. Затем очистите кеш.
Вы можете видеть соединение между этими двумя ссылками на Таблица "s_core_rewrite_urls". Просто создайте резервную копию таблицы и очистите ее. Нажмите на Конфигурация > Элемент меню "Кэш/производительность" и "Перестроить URL-адрес SEO" индекс".
Дополнительная информация доступна по адресу https://developers.shopware.com/blog/2015/08/11/the-shopware-seo-engine/