# Wie mache ich einen richtigen redirect()?

**URL:** <https://forum.shopware.com/t/wie-mache-ich-einen-richtigen-redirect/14672>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [28. Juli 2013 um 14:17 UTC](https://forum.shopware.com/t/wie-mache-ich-einen-richtigen-redirect/14672 "2013-07-28T14:17:10Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![keksterrrrr](https://avatars.discourse-cdn.com/v4/letter/k/45deac/32.png) [@keksterrrrr](https://forum.shopware.com/u/keksterrrrr)\
**Post date:** [28. Juli 2013 um 14:17 UTC](https://forum.shopware.com/t/wie-mache-ich-einen-richtigen-redirect/14672/1 "2013-07-28T14:17:10Z")

</div>

Hallo allerseits, ich stoße immer wieder an das Problem, dass ich nicht weiß, was die redirect() Methode für Parameter erwartet… So funktioniert es zwar: ` $redirect = array( 'module' =\> "frontend", 'controller' =\> "checkout", 'action' =\> "cart" ); $this-\>redirect( $redirect, "bla" ); ` und so lande ich auch im Warenkorb, aber den zweiten Parameter “bla” muss ich angeben, damit ich weiter geleitet werde. Es ist vollkommen egal, was ich als zweiten Parameter angebe - aber er muss anscheinend vorhanden sein. Wenn ich den zweiten Parameter weglasse, dann wird einfach nicht weiter geleitet… Wie mache ich es richtig?! Wie habe ich redirect() zu nutzen? Und an dieser Stelle: wie mache ich einen 301 “permanently moved” redirect? Vielen Dank & Gruß

---

<div class="post-metadata">

**Author:** ![kotoradeluxe](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@kotoradeluxe](https://forum.shopware.com/u/kotoradeluxe)\
**Post date:** [28. Juli 2013 um 15:46 UTC](https://forum.shopware.com/t/wie-mache-ich-einen-richtigen-redirect/14672/2 "2013-07-28T15:46:45Z")

</div>

hi, soweit ich weiß ist der 2te Parameter für die HTTP Header zuständig. siehe: [http://wiki.shopware.de/\_doc-sw4/classes/Enlight\_Controller\_Action.html#method\_redirect](http://wiki.shopware.de/%5C_doc-sw4/classes/Enlight%5C_Controller%5C_Action.html#method%5C_redirect) wenn Du deinen Parameter mitgeben willst dann einfach mit ins Array packen: ` $redirect = array( 'module' =\> 'frontend', 'controller' =\> 'checkout', 'action' =\> 'cart', 'bla' =\> 'asdf' ); $this-\>redirect($redirect); `

---

<div class="post-metadata">

**Author:** ![keksterrrrr](https://avatars.discourse-cdn.com/v4/letter/k/45deac/32.png) [@keksterrrrr](https://forum.shopware.com/u/keksterrrrr)\
**Post date:** [28. Juli 2013 um 16:23 UTC](https://forum.shopware.com/t/wie-mache-ich-einen-richtigen-redirect/14672/3 "2013-07-28T16:23:16Z")

</div>

Ok… das ist extrem merkwürdig. Mein redirect() funktioniert nun auch, wenn ich den zweiten Parameter weg lasse. Übrigens zur Frage mit dem 301 header: ` /\*\* \* Redirect the request. The frontend router will assemble the url. \* \* @param string|array $url \* @param array $options \*/ public function redirect($url, array $options = array()) { if (is\_array($url)) { $url = $this-\>Front()-\>Router()-\>assemble($url); } if (!preg\_match('#^(https?|ftp)://#', $url)) { if (strpos($url, '/') !== 0) { $url = $this-\>Request()-\>getBaseUrl() . '/' . $url; } $uri = $this-\>Request()-\>getScheme() . '://' . $this-\>Request()-\>getHttpHost(); $url = $uri . $url; } $this-\>Response()-\>setRedirect($url, empty($options['code']) ? 302 : (int) $options['code']); } ` Es reicht also ein array( ‘code’ =\> 301 ) als zweiten Parameter zu übergeben. Gruß & vielen Dank

---

<div class="post-metadata">

**Author:** ![Oliver\_Skroblin](https://avatars.discourse-cdn.com/v4/letter/o/6bbea6/32.png) [@Oliver\_Skroblin](https://forum.shopware.com/u/Oliver_Skroblin)\
**Post date:** [31. Juli 2013 um 13:18 UTC](https://forum.shopware.com/t/wie-mache-ich-einen-richtigen-redirect/14672/4 "2013-07-31T13:18:07Z")

</div>

Hi zusammen, wenn Ihr innerhalb von Shopware Controllern redirecten wollt, verwendet bitte $this-\>forward(); Dieser ist auch sehr viel angenehmer zu bedienen. Gruß Oliver
