Кажется, что Shopware имеет некоторое «волшебство» при создании URL-адресов, и я ищу кого-то, кто может объяснить это мне.
Это код стандартного шаблона для генерации SEO-URL с переменными, которые можно настроить в настройках SEO-router в серверной части:
{* 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-settings выглядит так по умолчанию:
В любом случае, вывод немного отличается:
http://www.DOMAIN.de/shop/CATEGORYNAME/18/PRODUCTTITLE?c=7
(Все заглавные буквы показывают настоящие правильные имена доменов, категорий и продуктов, которые скрыты здесь ради конфиденциальности моего клиента)
Проблема здесь в том, что URL-параметр «? C = 7» не нужен и должен быть опущен, как определено в SEO-router-options.
Первый вопрос: как опустить этот URL-параметр «c = 7» в конце URL?
Когда я отлаживаю этот код, я сталкиваюсь со странными вещами. Следующий код приведет к двум разным URL-адресам, хотя выполняется один и тот же термин:
Вот проблемы здесь:
Второй вопрос:
Как один и тот же шаблон-код может быть таким разным? Какая магия там работает за кулисами?
Я уверен, что вы знакомы с бэкэндом Shopware. Смотрите мои ответы вкратце:
Установите «Удалить CategoryID из Url = Нет» в настройках Seo / маршрутизатора. Тогда очистите кеш.
Вы можете увидеть связь между этими двумя ссылками на
Таблица «s_core_rewrite_urls». Просто сделайте резервную копию таблицы & пусто это. Нажмите на
Конфигурация> Кэш / производительность и пункт меню «Перестроить SEO URL»
индекс».
Более подробная информация доступна на https://developers.shopware.com/blog/2015/08/11/the-shopware-seo-engine/
Других решений пока нет …