Artikel rund ums Thema Webdesign und Frontendentwicklung

joomla 1.7.3 multilanguage 303 redirect problem

Für meinen Kunden www.mixwerk.com habe ich kürzlich eine mehrsprachige Seite online gestellt.
Zum Einsatz, für die Übersetzung kam dabei Falang, da mir dass Joomla eigene Übersetzungssystem zu umständlich erscheint und sowieso Joomfish Kenntnisse vorhanden waren.

Problem war allerdings, dass es auf der Startseite www.mixwerk.com zu einem 303 redirect kam.

hecked link: http://www.mixwerk.com

Type of redirect: 303 See other

Redirected to: http://www.mixwerk.com/de/

Da dies bspw. dazu führt, dass der dynamische Sitemap Link von xmap nicht gefunden werden kann und vermutlich auch sonst eher negative auswirkungen aufs Google Ranking zu befürchten sind, poste ich hier mal den corehack der das Problem löst.


plugins/system/languagefilter/languagefilter.php
Zeile 195 -248 Joomla 1.7.3
    // Redirect only if not in post
   $post = JRequest::get('POST');
   if (JRequest::getMethod() != "POST" || count($post) == 0)
   {
    if ($this->params->get('remove_default_prefix', 0) == 0)
    {
     // redirect if sef does not exists
     if (!isset(self::$sefs[$sef]))
     {
      // Use the current language sef or the default one
      $sef = isset(self::$lang_codes[$lang_code]) ? self::$lang_codes[$lang_code]->sef : self::$default_sef;
      $uri->setPath($sef . '/' . $path);

      if ($app->getCfg('sef_rewrite')) {
       // $app->redirect($uri->base().$uri->toString(array('path', 'query', 'fragment')));
      }
      else {
       $path = $uri->toString(array('path', 'query', 'fragment'));
       // $app->redirect($uri->base().'index.php'.($path ? ('/' . $path) : ''));
      }
     }
    }
    else
    {
     // redirect if sef does not exists and language is not the default one 
     if (!isset(self::$sefs[$sef]) && $lang_code != self::$default_lang)
     {
      $sef = isset(self::$lang_codes[$lang_code]) ? self::$lang_codes[$lang_code]->sef : self::$default_sef;
      $uri->setPath($sef . '/' . $path);

      if ($app->getCfg('sef_rewrite')) {
       // $app->redirect($uri->base().$uri->toString(array('path', 'query', 'fragment')));
      }
      else {
       $path = $uri->toString(array('path', 'query', 'fragment'));
       // $app->redirect($uri->base().'index.php'.($path ? ('/' . $path) : ''));
      }
     }
     // redirect if sef is the default one
     elseif ($sef == self::$default_sef)
     {
      array_shift($parts);
      $uri->setPath(implode('/' , $parts));

      if ($app->getCfg('sef_rewrite')) {
        $app->redirect($uri->base().$uri->toString(array('path', 'query', 'fragment')));
      }
      else {
       $path = $uri->toString(array('path', 'query', 'fragment'));
       // $app->redirect($uri->base().'index.php'.($path ? ('/' . $path) : ''));
      }
     }
    }
   }

Ohne Gewähr, vorher Update der Datei erstellen.

Details http://www.webdesign-ecommerce.de/2012/01/joomla-173-multilanguage-303-redirect.html


Update:
Von Torsten kommt folgende E-mail Nachricht zur Verbesserung des Hacks, da es eine neue Falang Version gibt.

Mittlerweile kann man dem Redirect sagen ob er 301 oder 303 ist. Dieser Fix sollte also aktualisiert werden.Die Datei \libraries\joomla\application\application.php enthält die Methodeenthält die Methode public function redirect($url, $msg = '', $msgType = 'message', $moved = false)
Somit kann in der Datei /plugins/system/languagefilter/languagefilter.php
der Code entsprechend angepasst werden.
Statt : // $app->redirect($uri->base().$uri->toString(array('path', 'query', 'fragment')));schreibt man dann : $app->redirect($uri->base().$uri->toString(array('path', 'query', 'fragment')), null, 'message', true);
Bedeutung der Werte: true = 301 false = 303
Dies würden Vorteil bieten die Redirects von FaLang fall-spezifisch als 303 oder 301 auszuführen.


Danke für die Info! 

Was steckt hinter eyeonu webdesign Berlin?

eyeonu webdesign berlin habe ich als Freelancer gegründet. Es handelt sich nach wie vor um ein Einmannunternehmen, das sich auf Frontendentwicklung im Bereich E-Commerce Spezialisiert hat.

Neben der Umsetzung von Designs für Online-Shops gibt es aber auch immer wieder Zeitfenster für kleinere Projekte und Websites bspw. auf Basis von Joomla

Blogeinträge

Joomla ID Nummer in Urls verhindern

Ein Frage die im Zusammenhang mit Joomla URLs sehr häufig auftritt ist, warum werden eigentlich, in einigen URLs, IDs dem...

Magento Transactional Email Conditionals

kürzlich wollte ich in einer Invoice E-Mail für Bestellungen die keine Steuer ausweisen müssten eine extra Nachricht anzeigen. Das...

Check von SSL Seiten

SSL Gerade E-Commerce Seiten sollten zumindestens im Checkout eine sichere Verbindung über SSL aufgebaut werden. Meistens stellt man jedoch nach der Umstellung...

Joomla Blog als Feed ausgeben

Nicht so ganz intuitiv ist das generieren oder ausgeben eines Feedlinks für eine bestimmte Kategorie in Joomla. Folgender Maßen muss...

Rechtschreibprüfung für die Website online durchführen

abcEditierenZum Schreiben kleiner Textpassagen, lässt sich gut die Duden Rechtschreibprüfung verwenden. Wenn man aber eine Website auf Rechtschreibfehler überprüfen möchte...

Zufällige Reihenfolge in Magento Kategorie Listen

Manchmal kann es sinnvoll sein, die Produkte in der Magento Kategorie Ansicht bei jedem Seiten Aufruf zufällig anzuordnen. Dies ist standardmäßig...

Kontakt Info

  office(@)eyeonu.org
  +49 (0)30 25043398
  +49 (0)30 23320770152
  Hermannstr. 56 Berlin

Our Map


zum Kontaktformular
Definicja opieki zdrowotnej http://polskaaptek.com/ najbliższego obrzęd pomocy apteka