Discussion:
Apache2/Linux probleme mit UTF8-URLs
(zu alt für eine Antwort)
Steffen Breitbach
2005-12-19 15:07:39 UTC
Permalink
Hallo zusammen!

Ich habe einen apache2 auf Linux am laufen; dort sind Dateien mit
Umlauten abgelegt.
Firefox kann diese Dateien anzeigen, da die Umlaute in der URL
"richtig" codiert werden. Internet Explorer allerdings wandelt die URL
in UTF-8 um. Damit kommt der apache2 nicht klar mit und liefert einen
Fehler (Datei kann nicht gefunden werden).

Wie kann ich den Apache dazu bringen, UTF-8 URLs richtig zu verstehen?
Ich hatte schon ganz krude Ideen mit mod_rewrite, die aber nicht
geklappt haben... Bin aber trotzdem der Überzeugung, daß das auch
"so" gehen muß...

Danke!

Bis denn...
Steffen
Christoph Schneegans
2005-12-19 15:20:59 UTC
Permalink
Post by Steffen Breitbach
Ich habe einen apache2 auf Linux am laufen; dort sind Dateien mit
Umlauten abgelegt.
Meinetwegen. Die entsprechenden URLs dürfen aber ausschließlich
ASCII-Zeichen enthalten, "http://www.example.org/ä" zu veröffentlichen
ist also falsch. Ob du als URL "http://www.example.org/%C3%A4" oder
"http://www.example.org/%E4" wählst, ist ganz allein dir überlassen.
--
<http://schneegans.de/> |
Steffen Breitbach
2005-12-20 08:21:38 UTC
Permalink
Mag ja sein, daß es mir überlassen ist, welche URL ich wähle.
Problem ist nur, daß mein Apache die URLs mit UTF-8-Codierten Zeichen
nicht "versteht" und deshalb keine Dokumente zurückliefert.
André Malo
2005-12-20 08:36:22 UTC
Permalink
Post by Steffen Breitbach
Mag ja sein, daß es mir überlassen ist, welche URL ich wähle.
Problem ist nur, daß mein Apache die URLs mit UTF-8-Codierten Zeichen
nicht "versteht" und deshalb keine Dokumente zurückliefert.
Der Apache muss es auch nicht verstehen. Dein Filesystem muss. Du hast jetzt ein
paar Möglichkeiten:

* Such dir eine Codierung aus (UTF-8 am besten) und bennen die Dateien auf der
Platte entsprechend. Dann verlinke konsistent und bereits URL-kodiert.

* Lege jeweils zwei Versionen an

* Ziehe Symlinks

* Ziehe Hardlinks

* Benutze mod_ext_filter, um die hereinkommende URL zu normalisieren

* Benutze RewriteMap txt:foo, um eine statische Abbildung von "falsch" auf
"richtig" mit mod_rewrite anzuwenden

* Benutze RewriteMap dbm:foo, um die statische Abbildung zu beschleunigen

* Benutze RewriteMap prg:foo, um eine dynamische Abbildung von "falsch" auf
"richtig" mit mod_rewrite anzuwenden

* Baue ein CGI-Script, was du mit Hilfe von ErrorDocument 404 antriggerst,
und was dann eine interne Umleitung zum "richtigen" Dokument auslöst (in perl
geht das dann etwa so:

print 'Status: 200\n';
print 'Location: /neuer/pfad\n\n';

)

* Schreibe ein Apache-Modul, was Zeichenkodierungen entgegennimmt und die
Abbildung vornimmt

* Biete es der ASF an ;-)

* Gehe über Los und ziehe 4000 DM ein.

nd
Christoph Schneegans
2005-12-20 20:05:10 UTC
Permalink
Post by Steffen Breitbach
Problem ist nur, daß mein Apache die URLs mit UTF-8-Codierten Zeichen
nicht "versteht" und deshalb keine Dokumente zurückliefert.
Dann sorg dafür, daß es keine "URLs mit UTF-8-Codierten Zeichen" gibt.
--
<http://schneegans.de/> |
Carsten Wiedmann
2005-12-19 15:40:34 UTC
Permalink
Post by Steffen Breitbach
Ich habe einen apache2 auf Linux am laufen; dort sind Dateien mit
Umlauten abgelegt.
Firefox kann diese Dateien anzeigen, da die Umlaute in der URL
"richtig" codiert werden. Internet Explorer allerdings wandelt die URL
in UTF-8 um. Damit kommt der apache2 nicht klar mit und liefert einen
Fehler (Datei kann nicht gefunden werden).
Das sollte aber nur passieren wenn du die URI direkt in die Adresszeile
tippst. Ein Link in einem Dokument das korrekt ein iso Charset sendet,
kodiert der IE dann auch nach iso. (IMHO sollte man das Charset des Zieles
sogar auch beim Link-Tag angeben können, falls deine Seiten in utf-8 sind)

Gruß
Carsten
Steffen Breitbach
2005-12-20 08:37:59 UTC
Permalink
Es passiert auch bei Links in Dokumenten (im konkreten Fall werden
Bilder in IMG-Tags nicht dargestellt, da im IMG-Tag eine URL mit
Umlauten steht, die eben vom IE auch in UTF-8 geschickt wird). Das
Dokument ist in ISO kodiert.
Carsten Wiedmann
2005-12-20 09:40:32 UTC
Permalink
Post by Steffen Breitbach
Es passiert auch bei Links in Dokumenten (im konkreten Fall werden
Bilder in IMG-Tags nicht dargestellt, da im IMG-Tag eine URL mit
Umlauten steht, die eben vom IE auch in UTF-8 geschickt wird). Das
Dokument ist in ISO kodiert.
Also bei mir funktioniert das so. Was zeigt denn dein IE an welches Charset
er für die aktuelle Seite verwendet (Ansicht -> Codierung)?

Gruß
Carsten
Loading...