Problem:

Nach heutigen Standards werden die URLs alt UTF-8 übergeben. Die Umlaute fallen im UTF-8 aber in den 2-Byte-Bereich. Verzeichnisse und Dateien werden aber als Single-Code angelegt.

Lösung:

Folgende Lösung funktioniert aber erst ab Apache 2, da Apache 1.x noch nicht die volle Perl-RegEx unterstüzt. Ausserdem gibt es dort auch noch Probleme mit der UTF-8-Codierung.

# Ä
RewriteRule ^(.*)\xC3\x84(.*)$ $1Ä$2 [N,E=utf8_fixed:1]
# ä
RewriteRule ^(.*)\xC3\xA4(.*)$ $1ä$2 [N,E=utf8_fixed:1]
# Ö
RewriteRule ^(.*)\xC3\x96(.*)$ $1Ö$2 [N,E=utf8_fixed:1]
# ö
RewriteRule ^(.*)\xC3\xB6(.*)$ $1ö$2 [N,E=utf8_fixed:1]
# Ü
RewriteRule ^(.*)\xC3\x9C(.*)$ $1Ü$2 [N,E=utf8_fixed:1]
# ü
RewriteRule ^(.*)\xC3\xBC(.*)$ $1ü$2 [N,E=utf8_fixed:1]
# ß
RewriteRule ^(.*)\xC3\x9F(.*)$ $1ß$2 [N,E=utf8_fixed:1]

RewriteCond %{ENV:utf8_fixed} 1
RewriteRule (.*) $1 [R]

Kategorien:

Stichwörter:

apache · mod_rewrite · Rewrite · Modul · utf8 · utf-8 · codierung · umlaute ·