Mastershrimp: Eigene Error404-Seite kommt nur in Mozilla

Hallo!

Man nehme folgende Seite: http://mastershrimp.com/inhalte/bla und betrachte sie zuerst mit dem Mozilla Firebird 0.7 und danach mit dem IE 6.
Bei mir erscheint nur in Mozilla die selbst-gestaltete Fehlerseite...

Die .htaccess-Datei liegt im obersten Verzeichnis meines Webspaces und beinhaltet nur folgende Zeilen:
ErrorDocument 404 /error404.php

Die Datei error404.php befindet sich ebenfalls in diesem Verzeichnis.

Woran liegt das also? Warum kommt im IE diese vorgefertigte
"Die Seite wurde nicht gefunden.
Die gewünschte Seite wurde möglicherweise entfernt oder umbenannt, oder sie ist vorübergehend nicht erreichbar."-Seite?

Gruß

Mastershrimp

  1. Hallo Mastershrimp.

    Bei mir erscheint nur in Mozilla die selbst-gestaltete Fehlerseite...

    Der IE verlangt eine Mindestgröße für selbst gestaltete Fehlerseiten, soweit ich mich erinnern kann, 512 Byte.

    Grüße
    Siechfred

    1. Hallo,

      Der IE verlangt eine Mindestgröße für selbst gestaltete Fehlerseiten, soweit ich mich erinnern kann, 512 Byte.

      Steht uebrigens auch im Apache-Manual, mit Link
      zur entsprechenden M$-Seite.
      http://httpd.apache.org/docs/mod/core.html#errordocument
      http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807

      @mastershrimp:
      Der history.back() Link ist ohne JavaScript total nutzlos.
      Also gib ihn nur aus, wenn JavaScript aktiviert ist.
      (Auch mit JavaScript ist er ziemlich nutzlos...)

      <script type="text/javascript">
      document.write('<a href="javascript:history.back()">Zurueck</a>');
      </script>

      Oder so. JS ist nicht mein Ding...

      Gruesse,

      Thomas

      --
      Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
      Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
      Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
      1. Der IE verlangt eine Mindestgröße für selbst gestaltete Fehlerseiten, soweit ich mich erinnern kann, 512 Byte.

        Die Datei ist 2 KB groß...

        @mastershrimp:
        Der history.back() Link ist ohne JavaScript total nutzlos.
        Also gib ihn nur aus, wenn JavaScript aktiviert ist.

        Jepp. Hast Recht. Habs geändert.

        (Auch mit JavaScript ist er ziemlich nutzlos...)

        Och. Da kenn' ich weitaus nutzloseres ;)

        Oder so. JS ist nicht mein Ding...

        Ja. Sollte funktionieren. Habs noch mit einem <noscript>-Bereich ergänzt.

        Das eigentliche Problem besteht aber weiterhin! Weiß niemand etwas?

        Gruß

        Mastershrimp

        1. Hallo,

          Der IE verlangt eine Mindestgröße für selbst gestaltete Fehlerseiten, soweit ich mich erinnern kann, 512 Byte.
          Die Datei ist 2 KB groß...

          Dann mach sie halt noch ein wenig groesser...

          Das eigentliche Problem besteht aber weiterhin! Weiß niemand etwas?

          Wie waer's mit einem Kommentar?

          <!--
          Dieser Kommentar ist nur da, weil der MS IE, das zweitgroesste
          Sorgenkind der Webpublisher (nach Netscape 4) zu doof ist,
          um kleine 404-Seiten anzuzeigen. Es folgt eine rein zufaellige
          Buchstabensuppe:
          asdjköldflkhweöljkdfgkljaselvc,boiewrljkdckhjsfhlk
          asdkjlösdafkjwepoisdflk jsedwerlhkdjsflkhsa lksdhlks
          u.s.w.
          -->

          Gruesse,

          Thomas

          1. Hallo!

            <!--
            Dieser Kommentar ist nur da, weil der MS IE, das zweitgroesste
            Sorgenkind der Webpublisher (nach Netscape 4) zu doof ist,
            um kleine 404-Seiten anzuzeigen. Es folgt eine rein zufaellige
            Buchstabensuppe:
            asdjköldflkhweöljkdfgkljaselvc,boiewrljkdckhjsfhlk
            asdkjlösdafkjwepoisdflk jsedwerlhkdjsflkhsa lksdhlks
            u.s.w.
            -->

            lustige Idee ;)
            Aber klappt leider immer noch nicht. Dabei ist das doch alles Serverseitig und muss _überall_ funktionieren (ok, fast überall), wenn es einmal funktioniert.
            Meine alte HTML-Error404-Seite hat ja auch geklappt. Doch die PHP-Seite geht nicht...

            Irgendwo muss da der Fehler sein. Würde dir/euch der Code der Fehlerseite weiterhelfen?

            Gruß

            Mastershrimp

            --
            Kämpft für die Rettung von dem Genitiv!
            1. Hallo!

              <!--
              Dieser Kommentar ist nur da, weil der MS IE, das zweitgroesste
              Sorgenkind der Webpublisher (nach Netscape 4) zu doof ist,
              um kleine 404-Seiten anzuzeigen. Es folgt eine rein zufaellige
              Buchstabensuppe:
              asdjköldflkhweöljkdfgkljaselvc,boiewrljkdckhjsfhlk
              asdkjlösdafkjwepoisdflk jsedwerlhkdjsflkhsa lksdhlks
              u.s.w.
              -->

              lustige Idee ;)

              Ja, ich musste auch herzhaft bei lachen! *bg*

              Irgendwo muss da der Fehler sein. Würde dir/euch der Code der Fehlerseite weiterhelfen?

              Ne, mir überhaut nicht - wie hast du denn die alte Error Seite gemacht?

              MfG, Dennis.

              --
              Auf Signaturen hab ich keinen Bock!!
              1. Hallo!

                Ne, mir überhaut nicht - wie hast du denn die alte Error Seite gemacht?

                Reinstes HTML. Die .htaccess-Datei ist bis auf die Dateiendung der 404-Datei dieselbe

                Gruß

                Mastershrimp

                --
                Kämpft für die Rettung von dem Genitiv!
            2. Moin!

              Meine alte HTML-Error404-Seite hat ja auch geklappt. Doch die PHP-Seite geht nicht...

              Wenns immer noch nur der IE ist:
              [?] Du hast mal den Cache geleert?

              MFFG (Mit freundlich- friedfertigem Grinsen)

              fastix®

              --
              Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
              1. Hallo!

                Wenns immer noch nur der IE ist:
                [?] Du hast mal den Cache geleert?

                Ja. Bei Mozilla und beim IE. Und immer noch dasselbe Dilemma...
                Ihr könnts ja gerne mal selber nachmachen. Einen IE dürften die meisten ja haben. Es probiert mal folgendes aus: http://www.mastershrimp.com/gibtsnicht

                Gruß

                Mastershrimp

                --
                Kämpft für die Rettung von dem Genitiv!
            3. Hallo,

              Irgendwo muss da der Fehler sein. Würde dir/euch der Code der Fehlerseite weiterhelfen?

              Lass Dir mal die Header anzeigen, spuckt der Server wirklich nen 404 aus?

              Gruss, Thoralf

              --
              Sic Luceat Lux!
              1. Hallo!

                Lass Dir mal die Header anzeigen, spuckt der Server wirklich nen 404 aus?

                Im IE oder im Mozilla? Wie mache ich das?

                Gruß

                Mastershrimp

                --
                Kämpft für die Rettung von dem Genitiv!
                1. Hallo,

                  Lass Dir mal die Header anzeigen, spuckt der Server wirklich nen 404 aus?
                  Im IE oder im Mozilla? Wie mache ich das?

                  Im Mozilla mit der Live HTTP headers Extension. Aber die header sehen IMHO bis auf die fehlende ContentLength (siehe mein anderes Posting) nicht schlecht aus.

                  Grüße, Alex.

                2. Hallo,

                  Lass Dir mal die Header anzeigen, spuckt der Server wirklich nen 404 aus?
                  Im IE oder im Mozilla? Wie mache ich das?

                  http://www.rexswain.com/cgi-bin/httpview.cgi?req=Get&fmt=Auto&fwd=on&url=http%3A//forum.de.selfhtml.org/my/%3Ft%3D73471%26m%3D423078

                  Ich hatte ähnlich wie Alex das zwischenzeitlich schon gemacht, und es sah gut aus. Die Idee mit dem Content-Length ist aber eine gute Idee, hast das mal probiert, so rein der Neugier wegen?

                  Gruß, Thoralf

                  --
                  Sic Luceat Lux!
                  1. Nachtrag/Korrektur:

                    http://www.rexswain.com/cgi-bin/httpview.cgi?req=Get&fmt=Auto&fwd=on&url=http%3A//forum.de.selfhtml.org/my/%3Ft%3D73471%26m%3D423078

                    http://www.rexswain.com/cgi-bin/httpview.cgi?req=Get&fmt=Auto&fwd=on&url=http%3A//mastershrimp.com/inhalte/bla
                    Will er nicht, bin zu faul, den jetzt noch durch ein Script zu jagen.

                    Gruß, Thoralf

                    --
                    Sic Luceat Lux!
                  2. Heyho!

                    Ich hatte ähnlich wie Alex das zwischenzeitlich schon gemacht, und es sah gut aus. Die Idee mit dem Content-Length ist aber eine gute Idee, hast das mal probiert, so rein der Neugier wegen?

                    Content-Length? Das mit der Dateigröße und den 512 Byte? Oder was meinst du?
                    Ich probiere gerne alles, was nicht übermäßig viel Aufwand mit sich bringt

                    Gruß

                    Mastershrimp

                    --
                    Kämpft für die Rettung von dem Genitiv!
                    1. Moin,

                      Content-Length? Das mit der Dateigröße und den 512 Byte? Oder was meinst du?
                      Ich probiere gerne alles, was nicht übermäßig viel Aufwand mit sich bringt

                      Das [pref:t=73471&m=423229] meine ich. :)

                      Gruss, Thoralf

                      --
                      Sic Luceat Lux!
            4. Hallo,

              wenn hier im Thread schon alle ueber Probleme des IE mit der Laenge des Errordocs berichten, habe ich eine Spekulation:

              Im header Deiner 404-Seite wird die "Content-Length:" nicht angegeben. Koennte das den IE irritieren? Kannst die Angabe ja mal testweise in Dein PHP Skript einbauen (mit "ob_start();" am Anfang des Skripts und "header('Content-Length: '.ob_get_length()); ob_end_flush();" am Ende).

              Grüße, Alex.

              1. Heyho!

                Kannst die Angabe ja mal testweise in Dein PHP Skript einbauen (mit »» "ob_start();" am Anfang des Skripts und "header('Content-Length: '.ob_get_length()); ob_end_flush();" am Ende).

                Hm. Das ist ziemliches Neuland für mich.
                In meiner Error-Datei benutze ich kein reines PHP, sondern nur für bestimmte Teile ein bisschen Code. Der Rest ist HTML.
                Der header-Befehl kann aber nur benutzt werden, wenn man vorher noch nix zum Client gesendet hat, oder? Also kann ich ihn schonmal nicht ans Ende setzen...

                Was mach' ich jetzt?
                http://de2.php.net/manual/de/function.ob-start.php war für mich auch eher Fachchinesisch :(

                Gruß

                Mastershrimp

                --
                Kämpft für die Rettung von dem Genitiv!
                1. Hallo,

                  Der header-Befehl kann aber nur benutzt werden, wenn man vorher noch nix zum Client gesendet hat, oder?

                  Grundsaetzlich schon.
                  Aber es gibt eben eine Ausnahme - das Output Buffering:

                  http://de2.php.net/manual/de/function.ob-start.php war für mich auch eher Fachchinesisch :(

                  Ist doch deutsch!? ;-)
                  Da steht doch genau, was ob_start() tut:

                  "Solange die Ausgabe-Pufferung aktiv ist, erfolgt keine Ausgabe
                  bei der Skript-Ausführung. Statt dessen werden alle Ausgaben
                  in einem internen Puffer gespeichert."

                  Wenn Du als allererstes auf der Seite mit PHP anfaengst
                  und ob_start() dort hinschreibst, dann wird eben noch nichts
                  an den Browser geschickt, sondern alles, was losgeschickt
                  _wuerde_, landet erst mal in einem Puffer.

                  Wenn Du als letztes schaust, wie gross dieser Puffer ist,
                  kannst Du auch einen HTTP-Head basteln und ausgeben, mit dem
                  Du dem Browser mitteilst:
                  "Jetzt kommen dann gleich 2132 Bytes Inhalt."

                  Dann kannst Du den Inhalt des Puffers schicken.

                  Gruesse,

                  Thomas

                  --
                  Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
                  Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
                  Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
                  1. Heyho!

                    http://de2.php.net/manual/de/function.ob-start.php war für mich auch eher Fachchinesisch :(

                    Ist doch deutsch!? ;-)

                    :)
                    Aber _was_ für eins! 90% technische Fachbegriffe.

                    Wenn Du als allererstes auf der Seite mit PHP anfaengst
                    und ob_start() dort hinschreibst, dann wird eben noch nichts
                    an den Browser geschickt, sondern alles, was losgeschickt
                    _wuerde_, landet erst mal in einem Puffer.

                    Wenn Du als letztes schaust, wie gross dieser Puffer ist,
                    kannst Du auch einen HTTP-Head basteln und ausgeben, mit dem
                    Du dem Browser mitteilst:
                    "Jetzt kommen dann gleich 2132 Bytes Inhalt."

                    _So_ ist das verständlich ;) Danke!

                    Also wenn ich das richtig verstanden habe soll's so gehen:

                    <?php
                     ob_start();
                    ?>
                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                    <HTML>
                    <HEAD>
                    [...]
                    </BODY>
                    </HTML>
                    <?php
                     header('Content-Length: '.ob_get_length());
                     ob_end_flush();
                    ?>

                    Stimmt das?
                    Das ganze klappt auch soweit. Am Anfang wurde irgendwie die CSS-Datei nicht eingebunden, aber jetzt gehts wieder. War irgendwas mit dem Browser-Cache. Habe den mal geleert.

                    Könnt ihr das schnell mal testen, indem ihr 2 Fehlerseiten (am besten auch mal mit Unterordnern) aufruft?

                    Danke aber nochmal an alle für die Bemühungen!
                    Ich werde mal beobachten, ob das weiterhin klappt.

                    Gruß

                    Mastershrimp

                    --
                    Kämpft für die Rettung von dem Genitiv!
                    1. Hallo,

                      _So_ ist das verständlich ;) Danke!

                      Bitte!

                      [Quellcode gesnippt] Stimmt das?

                      Sieht fuer mich OK aus.

                      Der HTTP Head auch:
                      http://cgi.w3.org/cgi-bin/headers?url=http%3A%2F%2Fmastershrimp.com%2Finhalte%2Fbla.123

                      404 Not Found
                      Content-Length: 1925
                      X-Powered-By: PHP/4.3.1
                      Server: Apache/1.3.27 (Linux/SuSE) FrontPage/4.0.4.3 PHP/4.3.1 mod_perl/1.27 mod_ssl/2.8.12 OpenSSL/0.9.6i
                      Connection: close
                      Date: Tue, 24 Feb 2004 13:17:29 GMT
                      Content-Type: text/html

                      Könnt ihr das schnell mal testen, indem ihr 2 Fehlerseiten (am besten auch mal mit Unterordnern) aufruft?

                      OK im MS IE 5.0 (Win 2000).
                      Egal, ob "Kurze HTTP Fehlermeldungen anzeigen" angekreuzt ist oder nicht.

                      Gruesse,

                      Thomas

                    2. Hallo,

                      <?php
                      ob_start();
                      ?>
                      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                      <HTML>
                      <HEAD>
                      [...]
                      </BODY>
                      </HTML>
                      <?php
                      header('Content-Length: '.ob_get_length());
                      ob_end_flush();
                      ?>

                      Stimmt das?

                      Ja, so war das gemeint. :-)

                      Könnt ihr das schnell mal testen, indem ihr 2 Fehlerseiten (am besten auch mal mit Unterordnern) aufruft?

                      Bei meinem IE wird jetzt (im Gegensatz zu gestern) korrekt Deine Fehlerseite angezeigt. Wenn ich jetzt nicht unbewusst irgendwas an der Konfig. meines IEs geaendert habe, dann war ja wirklich die fehlende Content-Length im Header der Grund fuer die Nicht-Anzeige. Oder hast Du noch etwas anderes geaendert?

                      Grüße, Alex.

                      1. Bei meinem IE wird jetzt (im Gegensatz zu gestern) korrekt Deine Fehlerseite angezeigt. Wenn ich jetzt nicht unbewusst irgendwas an der Konfig. meines IEs geaendert habe, dann war ja wirklich die fehlende Content-Length im Header der Grund fuer die Nicht-Anzeige. Oder hast Du noch etwas anderes geaendert?

                        Nee. Zumindest ebenfalls nicht bewusst ;)
                        Ist aber schon merkwürdig...
                        Zumal zwar jetzt bei "rechtsklick -> Eigenschaften" im IE zwar eine Größe angegeben wird (im Gegensatz zu gestern), diese aber nur 2 Byte beträgt :-?
                        Das dürfte ja dann auch nicht stimmen - bzw. danach müsste der IE ja seine 512-Byte-Geschichte auspacken.

                        --
                        Kämpft für die Rettung von dem Genitiv!
                  2. Hi,

                    Der header-Befehl kann aber nur benutzt werden, wenn man vorher noch nix zum Client gesendet hat, oder?
                    Grundsaetzlich schon.
                    Aber es gibt eben eine Ausnahme - das Output Buffering:

                    Inwiefern soll das eine Ausnahme sein? Das Output Buffering sorgt ja gerade dafür, daß erstmal nix zum Client gesendet wird.

                    cu,
                    Andreas

                    --
                    MudGuard? Siehe http://www.Mud-Guard.de/
                    1. Hallo Andreas,

                      Danke fuer den Einwand.

                      Inwiefern soll das eine Ausnahme sein? Das Output Buffering sorgt ja gerade dafür, daß erstmal nix zum Client gesendet wird.

                      Ja, das stimmt.
                      Das mit der "Ausnahme" war nicht sehr praezise formuliert.
                      Ich hoffe, dass die anschliessende Beschreibung des
                      Output Bufferings auf "Deutsch" die Sache geklaert hat.
                      Mastershrimp scheint es jedenfalls verstanden zu haben. ;-)

                      Was ich sagen wollte:
                      Nur, wenn man Output Buffering anwendet, kann man mit
                      echo "<!-- HTML-Code -->";
                      oder auch
                      <!-- HTML-Code -->
                      bereits Dinge "an den Browser ausgeben" (genauer gesagt:
                      die Ausgabe vorbereiten) und "weiter unten" im Skript-Ablauf
                      dann trotzdem noch einen header-Befehl haben (oder Sessions
                      starten, Cookies setzen u.s.w.).

                      Wenn man kein Output Buffering hat, und versucht, einen
                      HTTP-Header zu schicken, nachdem bereits eine Ausgabe
                      an den Client erfolgte, kommt die altbekannte Warnung
                      "Cannot send ... - headers already sent" ...

                      Bei Microsoft-Servern mit ASP ist das offenbar anders,
                      dort kann man offenbar "mitten im Skript" noch einen
                      HTTP-Header absetzen. Ich glaube mich jedenfalls
                      zu erinnern, dass sich hier mal ein ASP-Autor erstaunt
                      geauessert hat, weil in PHP die Header grundsaetzlich
                      als erstes geschickt werden muessen (von Output
                      Buffering mal abgesehen).

                      Gruesse,

                      Thomas

  2. Hi,

    Woran liegt das also? Warum kommt im IE diese vorgefertigte
    "Die Seite wurde nicht gefunden.

    Extras - Internetoptionen - Erweitert, unter "Browsing" (oder wie auch immer das im deutschen IE heißt) den Haken bei "Show friendly HTTP error messages" (oder wie auch immer das im deutschen IE heißt) wegmachen...

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    1. Heyho,

      Extras - Internetoptionen - Erweitert, unter "Browsing" (oder wie auch immer das im deutschen IE heißt) den Haken bei "Show friendly HTTP error messages" (oder wie auch immer das im deutschen IE heißt) wegmachen...

      Jepp. Das wars!! Hatte sowas schon in Verdacht, nachdem das Ganze hier nix brachte. Komisch. Hatte das gar nicht umgestellt...

      Vielen Dank euch allen!!

      Gruß

      Mastershrimp

      --
      Kämpft für die Rettung von dem Genitiv!
      1. Hallo,

        Extras - Internetoptionen - Erweitert, unter "Browsing" (oder wie auch immer das im deutschen IE heißt) den Haken bei "Show friendly HTTP error messages" (oder wie auch immer das im deutschen IE heißt) wegmachen...

        Jepp. Das wars!! Hatte sowas schon in Verdacht, nachdem das Ganze hier nix brachte. Komisch. Hatte das gar nicht umgestellt...

        Aber die Standardeinstellung scheint auf "Kurze HTTP Fehlermeldungen anzeigen" zu stehen (bei mir war's so und ich benutze den IE normal nicht und habe auch fast nix an den Standardoptionen veraendert). Und trotzdem werden ja andere Fehlerseiten auch mit dieser Option angezeigt. Also muss es noch etwas anderes geben...

        Grüße, Alex.

        1. Heyho!

          Vielleicht ist meine Seite einfach zu lang?
          Wenn man mit der Option "kurze" Seiten aktiviert, dann ist das doch ein Schutz vor "langen" Seiten.
          Ergo: Wenn man die Seite auf 1 KB oder so kürzt, dann könnte es gehen. Will ich aber jetzt nicht testen, da ich eh nix kürzen könnte.

          Gruß

          Mastershrimp

          --
          Kämpft für die Rettung von dem Genitiv!
  3. Die .htaccess-Datei liegt im obersten Verzeichnis meines Webspaces und beinhaltet nur folgende Zeilen:
    ErrorDocument 404 /error404.php

    Die Datei error404.php befindet sich ebenfalls in diesem Verzeichnis.

    also das ist alles soweit korrekt.
    dass der ie das nicht berücksichtigt kann nur an der schon angesprochenen mindestgröße für 404-fehlerseiten liegen, trifft aber in dienem fall nicht zu, da die seite groß genug sein müsste, ich habe viel kleinere fehlerseiten auf meiner seite und dort funtioniert es auch.

    könnte also an der konfiguration des servers liegen oder so ...

    oder versuch doch einfach mal für das error-document eine .html anstelle einer .php-seite zu nehmen ...
    oder gib die adresse der seite in der htaccess mal mit http:// an, wie gesgat, könnte an der grundkonfguration des servers liegen ...

    frag doch einfach mal deinen provider !