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.
zum Beispiel mit http://www. internetofficer.com/seo-tool/ redirect-check/
hecked link: http://www.mixwerk.com
Type of redirect: 303 See other
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.
Update siehe Ende des Beitrages!
Update siehe Ende des Beitrages!
plugins/system/languagefilter/languagefilter.php
Zeile 195 -248 Joomla 1.7.3
Ohne Gewähr, vorher Update der Datei erstellen.
Update:
Von Torsten kommt folgende E-mail Nachricht zur Verbesserung des Hacks, da es eine neue Falang Version gibt.
// 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.
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\Danke für die Info!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().$u ri->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.
Keine Kommentare:
Kommentar veröffentlichen