Wieder 404

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wieder 404

    Ich hab das Problem , dass von vielen Leuten schon angesprochen wurde, das aber nie richtig verstanden wurde.
    Ich habe eine 404-Fehlerseite geschrieben, die anzeigen soll, welche Seite nicht gefunden wurde.
    Gebe ich in der .htaccess - datei
    [COLOR=red]ErrorDocument 404 http://localhost/fehler/404.php[/COLOR]
    ein, öffnet der Browser die Fehlerseite, hat aber die Adresse der Fehlerseite in der Adressleiste stehn.
    Wenn mein Fehlerskript jetzt die Adresse auslesen soll, gibt es natürlich die Adresse der 404-Fehlerseite aus.

    Dann hab ich im Internet gelesen, wenn ich in der .htaccess-datei
    das [COLOR=red]http://[/COLOR] weglasse, sollte der Browser die Fehlerseite anzeigen , OHNE dass in der Adressleiste die Adresse der Fehlerseite steht. Also die Adresse der Seite, die der User eingetragen hat.
    =>Da wird aber die Standard Fehlerseite des Browsers gezeigt.

    In der Fehlerseite habe ich schon so zimlich alle Befehle ausprobiert:
    -getenv("REQUEST_URI")
    -$HTTP_SERVER_VARS['HTTP_REFERER']
    -$HTTP_SERVER_VARS['REDIRECT_URL']
    (...)

    Währe nett, hierbei Hilfe zu bekommen.

    Zur Info:

    -Apache 2.0.46
    -PHP 4.3.2
    -Windoofs XP (Unter Linux nen Apache zu kompilieren is mir zu hoch)
    -Ich teste meine Seiten mit IE6 und Opera 7.11
    Nichts ist schlimmer, als wenn ein Skript nicht funktioniert oder wenn der Alk leer ist.

  • #2
    *VERSCHIEB*

    Kommentar


    • #3
      $_SERVER['REQUEST_URI'] könnte dein freund werden
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        REQUEST_URI war schon ausprobiert ... aber in den Docs zum Apache finden sich ein paar mögliche Ursachen und nützliche Hinweise:

        http://httpd.apache.org/docs-2.0/mod...#errordocument
        ...
        Wenn Sie eine ErrorDocument-Anweisung angeben, die auf eine entfernte URL weist (d.h. irgendetwas mit der Methode http davor), beachten Sie bitte, dass der Apache eine Umleitung zum Client sendet, um diesem mitzuteilen, wo das Dokument zu finden ist, auch wenn das Dokument letztlich wieder zum gleichen Server führt

        ...

        Der Microsoft Internet Explorer (MSIE) ignoriert standardmäßig serverseitig generierte Fehlermeldungen, wenn sie "zu kurz" sind und ersetzt sie durch eigene "freundliche" Fehlermeldungen. Die Größe variiert abhängig von der Art des Fehlers, im Allgemeinen zeigt der MSIE jedoch den serverseitig generierten Fehler, anstatt ihn zu verstecken, wenn Ihr Fehlerdokument größer als 512 Bytes ist.
        http://httpd.apache.org/docs-2.0/custom-error.html
        ...

        Redirecting to another URL can be useful, but only if some information can be passed which can then be used to explain and/or log the error/problem more clearly.

        To achieve this, Apache will define new CGI-like environment variables:

        ...
        REDIRECT_QUERY_STRING=
        ...
        REDIRECT_SERVER_NAME=crash.bang.edu
        ...
        REDIRECT_URL=/cgi-bin/buggy.pl

        Note the REDIRECT_ prefix.

        At least REDIRECT_URL and REDIRECT_QUERY_STRING will be passed to the new URL (assuming it's a cgi-script or a cgi-include). The other variables will exist only if they existed prior to the error/problem. None of these will be set if your ErrorDocument is an external redirect (anything starting with a scheme name like http:, even if it refers to the same host as the server).

        ...

        Note that the script must emit an appropriate Status: header (such as 302 Found), if the response contains a Location: header (in order to issue a client side redirect). Otherwise the Location: header may have no effect.
        ergo: ErrorDocument 404 /fehler/404.php
        in 404.php:
        header ('404 Not Found');
        $url = $_SERVER['REDIRECT_URL'];
        und mindestens 512 Byte hinterher senden!
        Zuletzt geändert von Titus; 12.09.2003, 19:38.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          THX

          Danke für die Antwort.
          Meine Fehler-datei war einfach zu klein.
          Jetzt funktioniert alles prächtig.
          Nichts ist schlimmer, als wenn ein Skript nicht funktioniert oder wenn der Alk leer ist.

          Kommentar


          • #6
            Stimmt, das problem mit der größe hatten wir vor langer Zeit schon mal hier...

            Kommentar

            Lädt...
            X