Sprachumschaltung "too many redirects"

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Calimero
Beiträge: 60
Registriert: Do 4. Aug 2005, 13:44
Kontaktdaten:

Sprachumschaltung "too many redirects"

Beitrag von Calimero » Do 12. Nov 2015, 15:47

Liebe Community,

ich habe folgendes Problem mit der Sprachumschaltung bei Contenido:
Ein Kunde hat eine Webseite mit sechs Sprachen (deutsch, englisch, französisch, spanisch, russisch, tschechisch).
Diese Sprachen sollen über ein und denselben Domainnamen "www.example.de" laufen mit dem Unterschied, dass auf der deutschen Seite die Urls OHNE dem "Sprachkürzel" und in den anderen Sprach MIT "Sprachkürzel" angezeigt werden, bedeutet:
http://www.example.de/produkte/
http://www.example.de/en/product/
http://www.example.de/fr/produits/
etc...

Das funktioniert auch soweit ganz gut, dazu habe ich folgende Anpassung in Datei "contenido/classes/uri/class.uribuilder.mr.php" gemacht (weiß nicht ob das der richtige Ansatz war):

Code: Alles auswählen

if($idlang == 1) {
   return null;
}else{
   return urlencode(ModRewrite::getLanguageName($idlang));
}
Zusätzlich habe ich in der der Config-Datei im CMS Ordner folgendes hinterlegt:

Code: Alles auswählen

$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$parse = parse_url($url);
$host = $parse['host'];
if(stripos($url, "/en/") > 0) {
	$load_lang = '2';
}else if(stripos($url, "/fr/") > 0) {
	$load_lang = '3';
}else if(stripos($url, "/cz/") > 0) {
	$load_lang = '4';
}else if(stripos($url, "/ru/") > 0) {
	$load_lang = '5';
}else if(stripos($url, "/pl/") > 0) {
	$load_lang = '6';
}else if(stripos($url, "/es/") > 0) {
	$load_lang = '7';
}
Der o.g. Code funktioniert soweit ABER...

...Jetzt zu dem eigentlichen Problem und das betrifft SEO:
Google hat nun endlich alle Sprache erfolgreich indexiert und man kann diese URL auch aufrufen WENN man noch KEINE Sprache (ich vermute in der Session bzw. im Cookie) gesetzt hat.
Hat man die Seite vorher z.B. auf deutsch gestellt, klickt dann auf ein englisches Suchergebnis, erscheint die Meldung "too many redirects" und nichts passiert. Kurz gefasst:
User navigiert auf der Seite im deutschen, geht nach google und klickt auf ein englisches Suchergebnis mit der richtigen englischen URL und statt das die Sprache aus der URL genommen wird, erscheint die o.g. Fehlermeldung.

Es wäre super, wenn mir hierzu jemand helfen könnte, bzw. einen anderen Ansatz hat.

Vielen Dank

Antworten