Seite 1 von 1

Alias auf Russisch

Verfasst: Mi 23. Dez 2009, 13:32
von Luesch1
Hallo Leute,

hat jemand von euch schon mal eine Russische Seite mit Mode Rewrite gebaut? Wenn ich z. B. "ГЛАВНАЯ" als Menüpunkt habe schreibt Contenido mir beim Alias "iaia". Hat jemand eine Idee was man machen kann, dass dort auch "ГЛАВНАЯ" steht?

Viele Grüße

Re: Alias auf Russisch

Verfasst: Fr 25. Dez 2009, 19:31
von xmurrix
Hallo Luesch1,

die Kategoriealiase werden von der Funktion capiStrCleanURLCharacters() bereinigt. Die Funktion findest du in contenido/includes/functions.api.string.php.

Die Überprüfungsroutine lässt nur die Zeichen "a-z - _ ." durch, alle anderen Zeichen werden nicht in den Alias übernommen. Das gilt auch für russische Zeichen.
Du kannst die Zeile 392

Code: Alles auswählen

		if (preg_match('/^[a-z0-9]*$/i', $sChar) || $sChar ==  "-" || $sChar == "_" || $sChar == ".")
enstprechend anpassen. Leider ist das eine Änderung des Contenido Core, d. h. beim nächsten Update würde es überschrieben werden.

Gruß
xmurrix

Re: Alias auf Russisch

Verfasst: Fr 9. Apr 2010, 12:42
von drive
Wenn ich russische Aliase nutze, leitet er mich nicht auf die entsprechende Seite weiter, sondern auf die Start/Fehlerseite.
Wie kann man das am besten debuggen?

Re: Alias auf Russisch

Verfasst: Fr 9. Apr 2010, 13:13
von xmurrix
drive hat geschrieben:Wenn ich russische Aliase nutze, leitet er mich nicht auf die entsprechende Seite weiter, sondern auf die Start/Fehlerseite.
Wie kann man das am besten debuggen?
Du kannst das Debugging vom AMR Plugin aktivieren, indem du in der Datei contenido/plugins/mod_rewrite/includes/config.plugin.php an Zeile 70 von

Code: Alles auswählen

// set debug configuration
$options = array(
    'enable'                    => false, // disable debug
    'ressource_urls'            => array('/contenido/logs/errorlog.txt'),
    'dump_super_globals'        => array('$_GET', '$_POST', '$_COOKIE', '$_SESSION'),
    'ignore_empty_superglobals' => true
);
in

Code: Alles auswählen

// set debug configuration
$options = array(
    'enable'                    => true, // enable debug
    'ressource_urls'            => array('/contenido/logs/errorlog.txt'),
    'dump_super_globals'        => array('$_GET', '$_POST', '$_COOKIE', '$_SESSION'),
    'ignore_empty_superglobals' => true
);
änderst. Dann kriegst du im Browserfenster links obem eine Debugausgabe mit ein paar Infos.

Das auflösen ankommender Requests übernimmt die Klasse ModRewriteController in der Datei contenido/plugins/mod_rewrite/includes/class.modrewritecontroller.php.
Genauere Infos bekommst du, wenn du die Funktionen _setPathresolverSetting() und _setIdart() manuell debugst.

Was anderes:
Ist es überhaupt sinnvoll/richtig, in der URL russische Zeichen zu haben? Zum Einen sollten URLs rein aus ASCII-Zeichen bestehen (http://de.wikipedia.org/wiki/URL-Encoding), zum Anderen kann nicht jeder Client solche URLs korrekt interpretieren oder versuchen diese sogar eigenmächtig zu encodieren, was auch zu unerwarteten Nebeneffekten führen kann.

Kenne mich zwar mit dem Thema nicht sehr detailliert aus, und bin selten auf russichen Seiten, mir ist aber keine Seite bekannt, die russische Zeichen in den Links verwendet.

Gruß
xmurrix