Alias auf Russisch

Gesperrt
Luesch1
Beiträge: 39
Registriert: Mi 11. Jul 2007, 15:36
Kontaktdaten:

Alias auf Russisch

Beitrag 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
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Alias auf Russisch

Beitrag 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
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
drive
Beiträge: 28
Registriert: Mi 10. Sep 2008, 09:04
Kontaktdaten:

Re: Alias auf Russisch

Beitrag 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?
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Alias auf Russisch

Beitrag 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
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Gesperrt