Joomla und Magento Webdesign  Berlin Nico Jacobs eyeonu
  This e-mail address is being protected from spambots. You need JavaScript enabled to view it.

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


Aktuelle Seite: Startseite Blog Schriftzeichen finden mit shapecatcher