ErrorDocument 404 und Umlaute
Heizer
- webserver
0 at0 Andreas Görtz0 Heizer0 at
0 MudGuard
Liebes Forum
Da will ich gerade ein wirklich hilfreiches 404 Dokument gestallten, und treffe auf folgendes seltsames Verhalten:
#.htaccess:
ErrorDocument 404 /errors/404.php
Wenn ich nun irgendeine URI angebe die nicht existiert, dann kommt die 404.php, wie gewünscht. Wenn aber ISO-8859-1 codierte Zeichen in der URI vorkommen, dann gibt der Server sein Standard-404 Fehler zurück.
also:
http://my.server.cc/somewhere.php
=> Meine Fehlerseite
http://my.server.cc/F&e4hler.php
=> Standard 404
Witzig wird das ganze dadurch, daß Leerzeichen (%20) schon zum erwünschten Ergebnis führen. Ich bin leider mit Server technik nicht so vertraut, und habe keine Ahnung wo ich zu suchen anfangen soll.
Danke für jede Hilfe
Heizer
Hallo.
Wenn ich nun irgendeine URI angebe die nicht existiert, dann kommt die 404.php, wie gewünscht. Wenn aber ISO-8859-1 codierte Zeichen in der URI vorkommen, dann gibt der Server sein Standard-404 Fehler zurück.
Klingt logisch. Wenn er die Seite mit der Fehlermeldung nicht findet, weil sie anders geschrieben wird als von ihm erwartet und von dir definiert, nimmt er eben seine eigene Standardseite.
MfG, at
Hi at,
Klingt logisch. Wenn er die Seite mit der Fehlermeldung nicht findet, weil sie anders geschrieben wird als von ihm erwartet und von dir definiert, nimmt er eben seine eigene Standardseite.
kannst Du das bitte näher erläutern? So, wie ich Heizer verstanden habe, gibt es weder die »somewhere.php«, noch die »F&e4hler.php« in seinem DocumentRoot. Bei ersterer wird jedoch das per .htaccess definierte ErrorDocument geliefert, bei zweiterer nicht.
Was meinst Du mit »Seite mit der Fehlermeldung«?
@Heizer
bist Du sicher, dass beide Seiten mit einem 404er daherkommen?
Gruß,
Andreas.
Hi at,
Klingt logisch. Wenn er die Seite mit der Fehlermeldung nicht findet, weil sie anders geschrieben wird als von ihm erwartet und von dir definiert, nimmt er eben seine eigene Standardseite.
kannst Du das bitte näher erläutern? So, wie ich Heizer verstanden habe, gibt es weder die »somewhere.php«, noch die »F&e4hler.php« in seinem DocumentRoot. Bei ersterer wird jedoch das per .htaccess definierte ErrorDocument geliefert, bei zweiterer nicht.
Genau so ist es! Beide gibt es nicht, aber die Fehlermeldungen sind unterschiedlich.
@Heizer
bist Du sicher, dass beide Seiten mit einem 404er daherkommen?
Ja, "F&e4hler.php" führt genau zu dem 404-Fehler, den ich bekam bevor ich meine eigene 404.php angelegt habe.
Danke euch soweit
Hi,
@Heizer
bist Du sicher, dass beide Seiten mit einem 404er daherkommen?Ja, "F&e4hler.php" führt genau zu dem 404-Fehler, den ich bekam bevor ich meine eigene 404.php angelegt habe.
hmmm - hab das gerade mal lokal probiert, kann das Problem aber nicht reproduzieren. Scheint also nicht am Sonderzeichen zu liegen (hier Apache-Version 2.0.54).
Was sagt denn das Error-Log bei den beiden unterschiedlichen Aufrufen? Außerdem - falls Du noch weitere Sachen in der .htaccess stehen hast (rewriting o.ä.), kommentier mal alles bis auf das ErrorDocument aus und schau nach, ob es dann klappt.
Gruß,
Andreas.
Was sagt denn das Error-Log bei den beiden unterschiedlichen Aufrufen?
Guter Tipp, ich habe so selten etwas mit Servern zu tun, daß ich immer vergesse, daß es die gibt:
Jetzt also mal alles ganz genau:
#.htaccess#############################################################
ErrorDocument 404 /~Administrator/errors/404.php
Im Error Log steht dann zu den entsprechenden Aufrufen:
#http://localhost/~Administrator/somewhere.php#########################
[Mon Jan 02 22:40:06 2006] [error] [client 127.0.0.1] script 'C:/Dokumente und Einstellungen/Administrator/Eigene Dateien/public_html/somewhere.php' not found or unable to stat
#http://localhost/~Administrator/F%e4hler.php##########################
[Mon Jan 02 22:44:26 2006] [error] [client 127.0.0.1] File does not exist: C:/Programme/xampp/htdocs/~Administrator
######################################################################
Ist klar, daß das zweite nicht klappt, "~Administrator" ist ein Alias in der httpd.conf, das auf "public_html" von "Administrator" verweist. Ich habe es sicherheitshalber auch mal mit einem physischen Pfad in der .htaccess versucht, was auch nicht funktioniert hat. Allerdings bekomme ich dann im ersten Fall einen 500er (Serverfehler), im zweiten einen 404er. Deshalb denke ich, daß Apache gar nicht erst bis zur .htaccess kommt, daß also das sonderzeichen in der URL alles richtig durcheinander bringt. Hat das vielleicht wieder mal was mit windows zu tun?
Danke soweit
Heizer
Hi,
Hat das vielleicht wieder mal was mit windows zu tun?
arbeitest du gerade lokal? Wenn ja: schon mal auf dem Server ausprobiert?
Schönen Sonntag noch!
O'Brien
Hallo.
kannst Du das bitte näher erläutern?
Ich hatte die Problemstellung missverstanden.
MfG, at
Hi,
http://my.server.cc/F&e4hler.php
Wirklich mit dem Ampersand?
Für einen URL-codierten Umlaut müßte es ein Prozent sein.
Der Server interpretiert diese Url vermutlich als
my.example.org/F
und benutzt e4hler.php als Querystring
cu,
Andreas
Hi MudGuard,
Der Server interpretiert diese Url vermutlich als
my.example.org/F
und benutzt e4hler.php als Querystring
Häh? ;-) Wieso sollte er das tun?
Gruß,
Andreas.