3

在生成 URL 时, Shopware似乎有一些“魔力”,我正在寻找可以向我解释这一点的人。

这是标准模板的代码,用于生成带有变量的 SEO-url,这些变量可以在后端的 SEO-router-settings 中配置:

{* 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 的末尾省略这个 URL 参数“c=7”?

当我调试这段代码时,我遇到了奇怪的事情。以下代码将产生两个不同的 URL,尽管它执行的是同一个术语:

在此处输入图像描述

这些是这里的问题:

  1. {$sArticle.linkDetails|rewrite:$sArticle.articleName}的输出在 href-Attribute 和作为此链接标题的第二个输出之间是不同的。
  2. {$sArticle.linkDetails|rewrite:$sArticle.articleName}在 href-Attribute 中的输出将添加一个 URL-Parameter 来描述类别的 id,这是不想要的:“?c=7”

第二个问题:

相同的模板代码怎么会如此不同?幕后有什么魔力?

4

1 回答 1

3

我确定您熟悉 Shopware 后端。简而言之,请参阅我的答案:

  1. 要从详细信息页面 url 中删除 "?c=7":

在 Seo/路由器设置中设置“从 Url = No 中删除 CategoryID”。然后清除缓存。

  1. 我认为存在多个商店,或者您从其他电子商务系统迁移到商店用品。

您可以在“s_core_rewrite_urls”表中看到这两个链接之间的连接。只需备份表并清空它。单击配置 > 缓存/性能菜单项并执行“重建 SEO URL 索引”。

更多信息可在https://developers.shopware.com/blog/2015/08/11/the-shopware-seo-engine/

于 2016-10-20T05:19:11.600 回答