# Wie Kategorien aus der URL entfernen?

**URL:** <https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396>\
**Category:** Programmierung\
**Created:** [23. Dezember 2016 um 10:24 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396 "2016-12-23T10:24:10Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kai23](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@Kai23](https://forum.shopware.com/u/Kai23)\
**Post date:** [23. Dezember 2016 um 10:24 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/1 "2016-12-23T10:24:10Z")

</div>

Im Backend sieht der Kategoriebaum so aus

- Shopware  
&nbsp;- Deutsch  
&nbsp; - Hauptkategorie 1  
&nbsp; &nbsp; - Kategorie 11  
&nbsp; &nbsp; &nbsp; + Unterkategorie 12  
&nbsp; - Hauptkategorie 2  
&nbsp; &nbsp; - Kategorie 21  
&nbsp; &nbsp; &nbsp; + Unterkategorie 22  
&nbsp;+ Englisch  
&nbsp;+ Französisch

Hauptkategorie 1 und Hauptkategorie 2 möchte ich bei den Unterkategorien und bei den Artikeln nicht im URL Pfad haben.

Wäre das über eib Smarty Template in den SEO Router Einstellungen möglich?  
Meine Quick’n’Dirty Lösungsidee wäre es die Strings einfach zu strippen.

Erster Fehlversuch:  
{sCategoryPath articleID=$sArticle.id |strip:“Hauptkategorie 1”}/{$sArticle.id}/{$sArticle.name}

Oder wäre ein anderer Ansatz sowieso&nbsp;besser?

---

<div class="post-metadata">

**Author:** ![useg](https://avatars.discourse-cdn.com/v4/letter/u/df705f/32.png) [@useg](https://forum.shopware.com/u/useg)\
**Post date:** [23. Dezember 2016 um 10:36 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/2 "2016-12-23T10:36:52Z")

</div>

Mach es doch so, wie schon bei den Shopseiten mit einem Freitextfeld in den Kategorien \>&nbsp;[https://forum.shopware.com/discussion/43012/pfad-fuer-shopseiten-individuell-konfigurieren](https://forum.shopware.com/discussion/43012/pfad-fuer-shopseiten-individuell-konfigurieren)

Mit “|strip:” geht es meinesachtens nichtdas ist doch düe etwas anderes gedacht \> [http://www.smarty.net/docsv2/de/language.function.strip.tpl](http://www.smarty.net/docsv2/de/language.function.strip.tpl),  
dann würde doch eher mit ersetzen “replace:” gehen nur da brauchst du ja ne ellenlange Abfrage um alles unterzubringen.

Uwe

---

<div class="post-metadata">

**Author:** ![Kai23](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@Kai23](https://forum.shopware.com/u/Kai23)\
**Post date:** [23. Dezember 2016 um 10:38 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/3 "2016-12-23T10:38:20Z")

</div>

Für jede Kategorie und jeden Artikel den Pfad manuell vergeben?

---

<div class="post-metadata">

**Author:** ![useg](https://avatars.discourse-cdn.com/v4/letter/u/df705f/32.png) [@useg](https://forum.shopware.com/u/useg)\
**Post date:** [23. Dezember 2016 um 10:49 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/4 "2016-12-23T10:49:50Z")

</div>

Hatte noch was dazugeschrieben, das Freitextfeld meines achtens&nbsp;dann nur für die Unterkategorien und den Rest muss mit&nbsp;der Anpassung der Seo-Url des Artikels erfolgen.

Weiß aber jetzt ach nicht wie man bei den Seo-Einstellungen der Artikel-Url auf das Freitextfeld der Kategorie in der sich der Artikel befindet zugreift.

Aber vieleicht braucht man das auch nicht da er automatisch den angepassten Pfad der Kategorie voranstellt.

Uwe

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [23. Dezember 2016 um 10:56 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/5 "2016-12-23T10:56:20Z")

</div>

Du kannst auch sowas machen:

{assign&nbsp;var=‚tree‘ value={sCategoryPath categoryID=$sCategory.id}}{$tree|replace:‚Hauptkategorie 1‘:’’}

---

<div class="post-metadata">

**Author:** ![Kai23](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@Kai23](https://forum.shopware.com/u/Kai23)\
**Post date:** [23. Dezember 2016 um 11:08 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/6 "2016-12-23T11:08:37Z")

</div>

Stimmt strip entfernt (wie gewohnt) nur Whitespaces, bzw ersetzt diese gegen ein anderes Zeichen -\>&nbsp;[http://www.smarty.net/docsv2/de/language.modifier.strip.tpl](http://www.smarty.net/docsv2/de/language.modifier.strip.tpl)&nbsp;Da hatte ich die&nbsp;Smarty Doku falsch interpretiert.  
Ich versuche es mit replace mal. Es ist eine schlechte Quick’n’Dirty Lösung ja, erstmal.&nbsp;Das Handbuch für Entwickler ist vorbestellt…

Dein Vorschlag mit dem Freitextfeld&nbsp;wäre&nbsp;Dirty aber leider nicht Quick weil es in dem Fall zu viel Unterkategorien sind.

Am besten fände ich eine Checkbox “NICHT in IRL verwenden” aber ohne Plugin wird das IMHO&nbsp;nix.

Wie werden denn die “Kategorien” Shopware, Deutsch, Englisch, Französisch ausgefiltert?  
Es scheint als würde der&nbsp;sCategoryPath&nbsp;erst aber der 3ten Ebene anfangen…

&nbsp;

---

<div class="post-metadata">

**Author:** ![useg](https://avatars.discourse-cdn.com/v4/letter/u/df705f/32.png) [@useg](https://forum.shopware.com/u/useg)\
**Post date:** [23. Dezember 2016 um 11:29 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/7 "2016-12-23T11:29:02Z")

</div>

> [@Moritz Naczenski schrieb:](https://forum.shopware.com/profile/14574/Moritz%20Naczenski "Moritz%20Naczenski")
> 
> Du kannst auch sowas machen:
> 
> {assign&nbsp;var=‚tree‘ value={sCategoryPath categoryID=$sCategory.id}}{$tree|replace:‚Hauptkategorie 1‘:‚‘}

Hallo Moritz.

hat man hier nicht das Problem, wenn man sich in der &nbsp;Hauptkategorie 1 befindet auch diese aus der URL entfernt wird und nur noch die&nbsp;Shop-Url übrig bleibt und dadurch keine Seo-Url erstellt wird?

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [23. Dezember 2016 um 12:01 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/8 "2016-12-23T12:01:08Z")

</div>

Es geht ja um Artikel URLs im Eingangspost, da hast du ja eh keine Artikel, die der übergeordneten Kategorie direkt zugeordnet sind. Und selnbst wenn, hast du ja noch den Artikelnamen als URL. Komplett sieht es dann so aus:

{assign&nbsp;var=‚tree‘ value={sCategoryPath categoryID=$sCategory.id}}{$tree|replace:‚Hauptkategorie 1‘:’’}/{$sArticle.id}/{$sArticle.name}

Dann hast du alles wie vorher, nur dass wenn in der URL „Hauptkategorie 1“ ist, dieses entfernt wird.

---

<div class="post-metadata">

**Author:** ![useg](https://avatars.discourse-cdn.com/v4/letter/u/df705f/32.png) [@useg](https://forum.shopware.com/u/useg)\
**Post date:** [23. Dezember 2016 um 13:20 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/9 "2016-12-23T13:20:05Z")

</div>

> [@Kai23 schrieb:](https://forum.shopware.com/profile/25115/Kai23 "Kai23")
> 
> Hauptkategorie 1 und Hauptkategorie 2 möchte ich bei den **Unterkategorien** und bei den Artikeln nicht im URL Pfad haben.

Hallo Moritz,

Kai23 hat doch aber auch die Unterkategoieren erwähnt bei den es auch nicht sein soll also sind doch die Seo-Url’s der Kategorien auch betroffen&nbsp;

---

<div class="post-metadata">

**Author:** ![Kai23](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@Kai23](https://forum.shopware.com/u/Kai23)\
**Post date:** [23. Dezember 2016 um 14:06 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/10 "2016-12-23T14:06:51Z")

</div>

Da der Shop noch nicht live ist und keine History zu den Rewrites aufrecht erhalten werden muss leere ich die Tabelle s\_core\_rewrite\_urls und baue dann den SEO-Index neu auf.

Ich habe es mal so als SEO-Urls Artikel Template&nbsp;probiert:

```
{assign var='tree' value={sCategoryPath articleID=$sArticle.id}}{$tree|replace:'Hauptkategorie 1':''}/{$sArticle.id}/{$sArticle.name}

```

Das Anlegen der Variable $tree scheint so nicht zu funktionieren selbst das hier

```
{assign var="tree" value={sCategoryPath articleID=$sArticle.id}}{$tree}/{$sArticle.id}/{$sArticle.name}

```

resuliert in der DB als&nbsp;ArtikelID/ArtikelName. Also $tree scheint leer zu sein.

---

<div class="post-metadata">

**Author:** ![Kai23](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@Kai23](https://forum.shopware.com/u/Kai23)\
**Post date:** [23. Dezember 2016 um 14:55 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/11 "2016-12-23T14:55:36Z")

</div>

Kommando zurück.&nbsp;  
So funktioniert es:

1. SEO-Router Template ändern
2. Cache für Shopware Konfiguration und Index SEO-Urls zu leeren. (Muss auch im Bearbeitungsmodus gemacht werden)
3. Truncate s\_core\_rewrite\_urls (Optional)
4. SEO-Index neu aufbauen

Ich vermute es war noch das Template von Moritz im Cache das wegen einem falschen Parameter nicht funtioniert:  
{assign var=‘tree’ value={sCategoryPath **categoryID=$sCategory.id** }}{$tree|replace:‘Hauptkategorie 1’:’’}

Statt categoryID=$sCategory.id muss bei dem Artikel Template articleID=$sArticle.id übergeben werden.

---

<div class="post-metadata">

**Author:** ![Kai23](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@Kai23](https://forum.shopware.com/u/Kai23)\
**Post date:** [23. Dezember 2016 um 15:14 UTC](https://forum.shopware.com/t/wie-kategorien-aus-der-url-entfernen/42396/12 "2016-12-23T15:14:22Z")

</div>

Hier das vorerst endgültige Template für die Artikel:

```
{assign var='tree' value={sCategoryPath articleID=$sArticle.id}}{$tree|regex_replace:'/(Hauptkategorie 1|Hauptkategorie 2)/':''}/{$sArticle.id}/{$sArticle.name}

```

Wichtig ist das man die richtige Kategoriebezeichnung nimmt, nicht die durch slugify&nbsp;bereits gesäuberten.  
&nbsp;
