# Weiterleitung nach gelöschter Verkaufskanal Domain - Deaktivierung Routencache

**URL:** <https://forum.shopware.com/t/weiterleitung-nach-geloeschter-verkaufskanal-domain-deaktivierung-routencache/103348>\
**Category:** Shopware 6 (German)\
**Created:** [18. März 2024 um 08:21 UTC](https://forum.shopware.com/t/weiterleitung-nach-geloeschter-verkaufskanal-domain-deaktivierung-routencache/103348 "2024-03-18T08:21:00Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Adelbert](https://avatars.discourse-cdn.com/v4/letter/a/b782af/32.png) [@Adelbert](https://forum.shopware.com/u/Adelbert)\
**Post date:** [18. März 2024 um 08:21 UTC](https://forum.shopware.com/t/weiterleitung-nach-geloeschter-verkaufskanal-domain-deaktivierung-routencache/103348/1 "2024-03-18T08:21:00Z")

</div>

Wir haben in unserem Verkaufskanal eine Route ohne Sprachkürzel entfernt und möchten nun alle Requests auf das jeweilige Sprachkürzel weiterleiten also z.B. „[domain.com/produkt1](http://domain.com/produkt1) auf [domain.com/de/produkt2](http://domain.com/de/produkt2)“ weiterleiten. Da bei Löschung der Domain immer eine SalesChannelMappingException in RequestTransformer.php geworfen wird, habe ich den Service dekoriert um die Exception abzufangen. Ich schreibe dann eine Variable in den Request und lese diesen im Kernel Request Event wieder aus um eine Redirect Response zu senden. Das funktioniert aber nur, wenn caching deaktiviert ist, ansonsten kommt die Information nicht im Kernel Request Event an. Was kann ich hier tun?

P.S. Ich habe das auch über die .htaccess mit folgender Anweisung versucht, lande dann aber immer in einem redirect loop zur index.php

```auto
RewriteCond %{REQUEST_URI} !^/(de|en|es|fr|it)/
RewriteRule ^(.*)$ /de/$1 [L,R=302]

```

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [18. März 2024 um 09:12 UTC](https://forum.shopware.com/t/weiterleitung-nach-geloeschter-verkaufskanal-domain-deaktivierung-routencache/103348/2 "2024-03-18T09:12:58Z")

</div>

Doch noch lieber eine Tasse Kaffee… noch einmal gründlich überlegen… (auf mich, und nicht den Fragesteller bezogen).

---

<div class="post-metadata">

**Author:** ![Adelbert](https://avatars.discourse-cdn.com/v4/letter/a/b782af/32.png) [@Adelbert](https://forum.shopware.com/u/Adelbert)\
**Post date:** [18. März 2024 um 09:19 UTC](https://forum.shopware.com/t/weiterleitung-nach-geloeschter-verkaufskanal-domain-deaktivierung-routencache/103348/3 "2024-03-18T09:19:26Z")

</div>

Was willst du mir damit sagen? Ich komme aktuell nicht weiter, auch wenn das Problem trivial erscheint.

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [18. März 2024 um 09:22 UTC](https://forum.shopware.com/t/weiterleitung-nach-geloeschter-verkaufskanal-domain-deaktivierung-routencache/103348/4 "2024-03-18T09:22:31Z")

</div>

Das mit dem Kaffee war auf mich bezogen, da ich eine nicht wirklich sinnvolle Antwort geschrieben hatte, diese dann editiert.

Request\_Uri beinhaltet den / nach der Domain, wenn ich mich nicht irre. Dann würdest du dadurch zu //de/ umleiten.

---

<div class="post-metadata">

**Author:** ![Adelbert](https://avatars.discourse-cdn.com/v4/letter/a/b782af/32.png) [@Adelbert](https://forum.shopware.com/u/Adelbert)\
**Post date:** [18. März 2024 um 09:27 UTC](https://forum.shopware.com/t/weiterleitung-nach-geloeschter-verkaufskanal-domain-deaktivierung-routencache/103348/5 "2024-03-18T09:27:03Z")

</div>

Okay alles klar, dann hatte ich das missverstanden 🙈

Ja, der „/“ ist aber nicht das Problem. Die Weiterleitung funktioniert 1x, danach ein endless Loop nach /de/index.php.

Es hängt irgendwie mit der letzten Zeile von Shopware in der .htaccess zusammen:

```auto
# Rewrite all other queries to the front controller.
RewriteRule ^ %{ENV:BASE}/index.php [L]

```

Aber verstehe nicht, wieso der Request überhaupt dort ankommt.

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [18. März 2024 um 09:49 UTC](https://forum.shopware.com/t/weiterleitung-nach-geloeschter-verkaufskanal-domain-deaktivierung-routencache/103348/6 "2024-03-18T09:49:18Z")

</div>

Hat etwas gedauert, aber klar…

Du verhinderst damit jeglichen api Call der über /api läuft.

Du kannst also nicht per !^/(de|en|es|fr|it)/ abfragen.

Da musst du, wie Shopware auch, mit der index.php arbeiten und dort die Parameter nach dem ? auswerten.

---

<div class="post-metadata">

**Author:** ![Adelbert](https://avatars.discourse-cdn.com/v4/letter/a/b782af/32.png) [@Adelbert](https://forum.shopware.com/u/Adelbert)\
**Post date:** [18. März 2024 um 10:16 UTC](https://forum.shopware.com/t/weiterleitung-nach-geloeschter-verkaufskanal-domain-deaktivierung-routencache/103348/7 "2024-03-18T10:16:45Z")

</div>

Okay, danke für den Tipp. Ich habe es aber noch nicht ganz raus. Ich dachte immer der erste Request ist ohne index.php und den muss ich doch abfangen, um den Redirect zu erzeugen, sodass dann alles regulär abläuft. Wie soll ich das abfragen?

---

<div class="post-metadata">

**Author:** ![Adelbert](https://avatars.discourse-cdn.com/v4/letter/a/b782af/32.png) [@Adelbert](https://forum.shopware.com/u/Adelbert)\
**Post date:** [18. März 2024 um 13:44 UTC](https://forum.shopware.com/t/weiterleitung-nach-geloeschter-verkaufskanal-domain-deaktivierung-routencache/103348/8 "2024-03-18T13:44:56Z")

</div>

Konnte es jetzt so lösen:

```auto
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteCond %{HTTP_HOST} example
RewriteCond %{REQUEST_URI} !^/admin
RewriteCond %{REQUEST_URI} !^/bundles
RewriteCond %{REQUEST_URI} !^/api
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_URI} !^/(de|en|es|fr|it)/
RewriteRule ^(.*)$ /de/$1 [L,R=301]

```
