Umlaute werden in der URL durch - ersetzt

Author: Ing. Michael Fürst (m.fuerst@bluegate.at)
Web: http://www.bluegate.at
Publiziert: Dezember 2007

Problembeschreibung

Wenn Sie das Direct URL Modul einsetzen und Umlaute in einem Kategoriebezeichner, einem Produktnamen oder einem Contentelement verwenden (ö,ä,ü etc.), werden diese in der URL durch einen Bindestrich anstelle durch ae, oe, ue ersetzt.

Beispiel:
Produktname: Lötstation "Ägypten" 4711
URL: www.shopname.de/products/l-tstation--gypten-4711

Problemanalyse

Direct URL ersetzt bei der Indizierung alle Umlaute in Groß- und Kleinschreibung (ä,ü,ö,Ä,Ü,Ö) durch das im deutschsprachigen Raum übliche Pendant (ae,ue,oe,AE,UE,OE). Auch viele weitere Zeichen werden ersetzt, da diese (genauso wie die Umlaute) in einer URL ungültig sind (Leerzeichen, Klammern etc.). Unbekannte Bezeichner werden durch einen - (Bindestrich) ersetzt, um die Gültigkeit der URL zu gewährleisten.

Bei der Indizierung der Daten, liest Direct URL die Bezeichner aus der Datenbank aus (Produktnamen, Kategoriebezeichner etc.). Und genau hier entsteht das Problem:

Es kann vorkommen, dass Ihre Umlaute nicht als "echte" Umlaute in der Datenbank gespeichert werden. Grund dafür ist zumeist eine falsche Einstellung der Charsets (Zeichensätze) bzw. der Kollation für die Datenbank bzw. den Webserver.

Sind die Zeichensätze falsch eingstellt, wird ein "ü" z.B. als "ü" in der Datenbank gespeichert. Indiziert Direct URL dann die Produkte, findet es in der Datenbank "ü" anstelle des "ü" vor, stuft es als unbekanntes Zeichen ein und ersetzt es mit einem - (Bindestrich) in der URL.

Lösung

Bei diesem Problem gibt es keine allgemein gültige Lösung. Prüfen Sie jedenfalls testweise (z.B. mit phpMyAdmin), wie die Umlaute bei Ihrem Bezeichner in der Datenbank gespeichert werden. Finden Sie in der Datenbank keine Umlaute sondern andere Zeichen vor (z.B. ü), dann liegt ein Problem mit der Kollation / dem Zeichensatz vor.

Bitte wenden Sie sich in diesem Fall an Ihrem Systemadministrator, der mit Ihnen das Problem genauer identifizieren und vermutlich auch durch umkonfigurieren des Servers lösen kann.