Seite 1 von 1

ErrorDocument 404 Problem

Verfasst: 02.06.2006, 21:41
von Hasenhuf
Das Thema Fehlerseite ist zur Zeit ja beliebt. Ich habe da auch ein Problem.

.htaccess

Code: Alles auswählen

...
ErrorDocument 404 /verzeichnis/404.htm
Wenn ich die Seite 404.htm direkt aufrufe, Funktioniert alles mehr oder weniger*. Wenn ich eine nicht existierende Seite aufrufe (IE 6) wird die Hintergrundfarbe übernommen und dort wo ich über <object> eine SVG einbinde ein weißes Rechteck dargestellt. Von dem swf Player der weiter unten ebenfalls über <object> eingebunden ist sieht man nichts (nur das man bis hin scrollen kann läßt ihn da vermuten). Der Browser lädt und lädt ("2 Elemente") und reagiert nicht auf "abbrechen" (aber auf zurück). Diese beiden "Objektrahmen werden dargestellt und man kann sie an- bzw. wegklicken, das ändert aber nichts.

* Wie schon geschrieben ist das alles inhaltlich nicht unbedingt kompatibel aber valid und offline funktioniert die Seite mit dem gleichen Browser so wie beim Direktaufruf.

Hat jemand Ahnung woran es liegen könnte? Was für Besonderheiten sind zu beachten, wenn eine Fehlerseite so aufgerufen wird?


Quelltext der 404.htm, gekürzt.

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http&#58;//www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <meta http-equiv="Content-Style-Type" content="text/css">
  <style type="text/css">
body &#123; background-color&#58;#000000;
     margin&#58;6px; &#125;
</style>
  </head>
<body style="text-align&#58;center;">
<div style="width&#58;748px;margin&#58;0px auto;text-align&#58;left;">
<p style="text-align&#58;center">
<object data="bild.svg" type="image/svg+xml" width="723" height="575">
    <param name="src" value="bild.svg">
    404 Fehlerseite<br>
    <br>
     bla ... <a href="http&#58;//www.adobe.com/svg/viewer/install/main.html">Adobe SVG Viewer</a> <br>
    Zur Startseite geht es <a href="/">hier</a>.
  </object>
</p>
<p style="text-align&#58;left">
<object type="application/x-shockwave-flash" data="emff_standard.swf?src=1000hz.mp3&autostart=yes&loop=yes&streaming=no" width="110" height="34">
 <param name="movie" value="emff_standard.swf?src=1000hz.mp3&autostart=yes&loop=yes&streaming=no">
 <param name="quality" value="high">
 <param name="bgcolor" value="#000000">
bla ... <a href="http&#58;//www.adobe.com/products/flashplayer/">Flash Player</a>.
</object>
</p>
</div>
</body>
</html>
PS: Beim Firefox verhält es ähnlich.

Verfasst:
von

Re: ErrorDocument 404 Problem

Verfasst: 03.06.2006, 09:50
von haha
Hasenhuf hat geschrieben:ErrorDocument 404 /verzeichnis/404.htm

Wenn ich die Seite 404.htm direkt aufrufe, Funktioniert alles mehr oder weniger*. Wenn ich eine nicht existierende Seite aufrufe (IE 6) wird die Hintergrundfarbe übernommen und dort wo ich über <object> eine SVG einbinde ein weißes Rechteck dargestellt. Von dem swf Player der weiter unten ebenfalls über <object> eingebunden ist sieht man nichts (nur das man bis hin scrollen kann läßt ihn da vermuten).

<object data="bild.svg" type="image/svg+xml" width="723" height="575">

<object type="application/x-shockwave-flash" data="emff_standard.swf?src=1000hz.mp3&autostart=yes&loop=yes&streaming=no"

Was für Besonderheiten sind zu beachten, wenn eine Fehlerseite so aufgerufen wird?
Die Fehlerseiten sind, entgegen häufiger Annahmen, keine Weiterleitungen, sondern werden quasi anstelle des angeforderten Objekts gesendet. Daraus ergibt sich, dass sich alle URLs in einer Fehlerseite auf die Fehler-URL beziehen, nicht auf den Platz, an dem sich die Fehlerseite befindet.

Deine beiden problematischen Objekte lädst Du über "bild.svg" und "emff_standard.swf", beides relative URLs. Rufst Du /bla/existiert_nicht.html auf, wird der Browser versuchen, /bla/bild.svg und /bla/emff_standard.swf aufzurufen, bei /123/tralala.html werden es dann entsprechen /123/bild.svg und /123/emff_standard.swf sein. Rufst Du die Fehlerseite direkt auf, hast Du natürlich den richtigen Pfad in der Adressleiste - deshalb funktioniert's dann auch (es würde aber auch funktionieren, wenn Du statt /verzeichnis/404.html /verzeichnis/xyz aufrufen würdest).

Langer Rede, kurzer Sinn: In Fehlerseiten immer mindestens halb-absolute URLs verwenden, d.h. relativ zum Wurzelverzeichnis des Servers, in Deinem Beispiel /verzeichnis/bild.svg und /verzeichnis/emff_standard.swf.

Verfasst: 03.06.2006, 10:55
von Hasenhuf
Danke für die treffende Antwort. Das hätte man auf den vielen Seiten die das mit dem ErrorDocument beschreiben auch mal erwähnen können.

Und für alle die es ausprobieren wollen hinter emff_standard.swf?src= gehört auch ein absoluter Pfad.

Dann werde ich jetzt mal nach Browserworkarounds für <objekt> und SVG suchen. Im IE stört der Rahmen und der Aktivierungsklick und mit Firefox wird die SVG teilweise falsch angezeigt und der Player geht nicht. :-?