Seite 1 von 1

Sprachwechsel bei suchmaschinenfreundlichen URLs

Verfasst: Do 27. Mär 2008, 14:11
von CvH
Hallo zusammen,

wir nutzen die Version Contenido 4.6.15 in der Überarbeitung für "nice URLs".

Dabei haben wir nun ein Problem:
der Sprachwechsel funktioniert irgendwie nicht, wenn wir den modrewrite aktiviert haben. Er erzeugt zwar plausibel aussehende URLs (aus ../produkte/produkte.html wird ../products/products.html), aber die Seite welche angezeigt wird ist immer noch die deutsche. Erst ein manuelles eintippen von ?changelang=2 bringt den ersehnten Sprachwechsel mit sich... zurück zu deutsch klappt es dann aber wieder nicht.

Folgendes haben wir bereits eingekreist:
- bei Ausschalten des MR in der config.php funktioniert es problemlos
- in der bewussten Kategorie ist ein Startartikel definiert
- sowohl Kategorie als auch Startartikel sind online geschaltet

Was können wir tun, um das Problem zu lösen?

Danke und Gruß
Catharina

Verfasst: Do 27. Mär 2008, 15:29
von tono
Habt Ihr Euch auch mit den Spracheinstellungen des modrewrite-Bundles in der Datei config.php auseinandergesetzt?

Code: Alles auswählen

/* is multilanguage? ( 1 = yes, 0 = none ) */
$cfg['mod_rewrite']['use_language'] = 0;

/* use language name in url? ( 1 = yes, 0 = none ) */
$cfg['mod_rewrite']['use_language_name'] = 0;

Verfasst: Do 27. Mär 2008, 22:52
von CvH
Nööö... das hatte ich übersehen. Jetzt habe ich das geändert, aber nun lädt die Seite ewiglich und nichts passiert... dann kommt irgendwann eine fiese Fehlermeldung:

Code: Alles auswählen

Warning: opendir(locale/) [function.opendir]: failed to open dir: No such file or directory in xxxxxxxxx/contenido/includes/startup.php on line 47

Warning: readdir(): supplied argument is not a valid Directory resource in xxxxxxxxx/contenido/includes/startup.php on line 49

Fatal error: Error: Can't include includes/cfg_sql.inc.php in xxxxxxxxx/contenido/includes/api/functions.api.general.php on line 158
Ich habe nur das erste auf 1 gesetzt:

Code: Alles auswählen

/* is multilanguage? ( 1 = yes, 0 = none ) */
$cfg['mod_rewrite']['use_language'] = 1;

/* use language name in url? ( 1 = yes, 0 = none ) */
$cfg['mod_rewrite']['use_language_name'] = 0;
Und jetzt???

Danke und lieben Gruß
Catharina

Verfasst: Do 27. Mär 2008, 23:11
von tono
Ich denke Du hast Dir einen Syntaxfehler in die config.php eingebaut. Die Stelle an der der Fehler auftritt ist die erste Stelle, an der Contenido auf eine Konfigurationsvariable zugreift.

Bitte config.php genau überprüfen.

Verfasst: Fr 28. Mär 2008, 09:15
von CvH
Ich habe die beiden Variablen einfach mal zurückgeändert und dann treten keine Fehler mehr auf:

Code: Alles auswählen

/* Use advanced mod_rewrites  ( 1 = yes, 0 = none ) */ 
$cfg['mod_rewrite']['use'] = 0;

/* Path to the htaccessfile with trailling slash from domain-root! */
$cfg['mod_rewrite']['rootdir'] = '/';

/* Start TreeLocation from Root Tree (set to 1) or get location from first category (set to 0) */
$cfg['mod_rewrite']['startfromroot'] = 0;

/* is multilanguage? ( 1 = yes, 0 = none ) */
$cfg['mod_rewrite']['use_language'] = 0;

/* use language name in url? ( 1 = yes, 0 = none ) */
$cfg['mod_rewrite']['use_language_name'] = 0;
Dann kann es doch eigentlich kein Fehler in der config.php sein, oder?

Verfasst: Fr 28. Mär 2008, 09:55
von tono
Sehr sehr merkwürdig. Ich erhalte die gleiche Fehlermeldung, wenn ich in config.php die Zeile

Code: Alles auswählen

$cfg['path']['contenido'] = "/irgendwas/";
auskommentiere.

Das Interessante an deiner Fehlermeldung ist ja, dass der Server das Verzeichniss locale/ an der falschen Stelle sucht. Davor müsste noch der contenido-Server-Pfad stehen.

Du kannst nochmal versuchen print_r($GLOBALS); vor Zeile 47 in startup.php einzufügen. Du erhälst dann eine Liste aller definierten Variablen. Dort kannst Du schauen was mit $cfg nicht stimmt.