Brombeermilchtrinker: 404 Fehlerseite

Hallo SELF-Community!

Ich habe 2 Fragen bezüglich einer eigenen 404-Fehlerseite.

1.) Wie schafft man es mittels PHP, daß auf der erscheinenden Fehlerseite auch die ursprünglich aufgerufene Datei steht?

2.) Wie schafft man es, daß bei einem Auftreten eines 404ers die ursprünglich eingegebene URL in der Adresszeile stehen bleibt und _nicht_ die URL der Fehlerseite dort steht?

Zu Punkt 1 : Ich habe weder über Suchmaschinen, noch über die Suche im Archiv eine passende Lösung gefunden.

Ich habe zum Testen einen Ordner Namens "projekt01" mit einer Indexseite sowie einer Seite 2 und einer Seite 3. Sonst befinden sich in dem Ordner keine Dateien.

Im selben Ordner befindet sich eine .htaccess mit dem Inhalt " ErrorDocument 404 http://www.webstuff.at-web.cc/sides/coding/projekt01/404.php " sowie der Seite 404 mit folgendem Code :

  
<?php  
 $versuch=$_SERVER["REDIRECT_URL"];  
 echo"Aufruf war : ";$versuch;  
?>  

Jetzt müßte doch, egal, was man in die URL ( nach dem http://www.webstuff.at-web.cc/sides/coding/projekt01/ ) schreibt, dies dann der Wert für $versuch werden. Wie man sieht, passiert das aber nicht. $versuch bleibt leer. Wo liegt da mein Denkfehler? Geht man da anders an das Problem heran?

Zu Punkt 2 : Wie man sieht, steht beim Status 404 sofort die URL der Fehlerseite in der Adresszeile. Wie kann man das verhindern und die ursprünglich eingegebene ( falsche ) Adresse dort lassen?

Danke im Voraus!

Mit freundlichen Grüßen

Der Brombeermilchtrinker

  1. Hi,

    Ich habe 2 Fragen bezüglich einer eigenen 404-Fehlerseite.

    1.) Wie schafft man es mittels PHP, daß auf der erscheinenden Fehlerseite auch die ursprünglich aufgerufene Datei steht?

    2.) Wie schafft man es, daß bei einem Auftreten eines 404ers die ursprünglich eingegebene URL in der Adresszeile stehen bleibt und _nicht_ die URL der Fehlerseite dort steht?

    das ist eigentlich nur eine Frage.

    Im selben Ordner befindet sich eine .htaccess mit dem Inhalt " ErrorDocument 404 http://www.webstuff.at-web.cc/sides/coding/projekt01/404.php "

    Das erzeugt eben diese externe Weiterleitung. gebe den lokalen Pfad an und schick den Browser nicht über's Netz auf Deine Fehlerseite. Dann wird diese auch mit dem korrekten Statuscode ausgeliefert.

    freundliche Grüße
    Ingo

    1. Hallo Ingo!

      das ist eigentlich nur eine Frage.

      Nein, es sind 2. Ich habe mich wohl zu ungenau ausgedrückt.

      Ziel 1 : Angenommen, meine Domain ist 'www.xyz.de' und jemand gibt als Adresse 'www.xyz.de/kuckuck.html' ein und diese Datei existiert nicht. Dann will ich, daß in der 404-Meldung wortwörtlich steht : "Die von Ihnen aufgerufene Datei /kuckuck.html existiert hier nicht!". Das also das, was eingegeben worden ist, Teil der 404-Information ist.

      Ziel 2: Ich will, daß in der Adresszeile dann nicht die URL der 404-Fehlermeldungsseite steht, sondern immer noch das vom User eingegebene 'www.xyz.de/kuckuck.html'.

      Das erzeugt eben diese externe Weiterleitung. gebe den lokalen Pfad an und schick den Browser nicht über's Netz auf Deine Fehlerseite. Dann wird diese auch mit dem korrekten Statuscode ausgeliefert.

      Das hab ich soebnen getan. das Ergebnis ist gleichbleibend. :-(

      mit freundlichen Grüßen

      Der Brombeermilchtrinker

      1. echo $begrüßung;

        gebe den lokalen Pfad an und schick den Browser nicht über's Netz auf Deine Fehlerseite. Dann wird diese auch mit dem korrekten Statuscode ausgeliefert.
        Das hab ich soebnen getan. das Ergebnis ist gleichbleibend. :-(

        Nicht dass dir ein Cache einen Streich spielt ...

        echo "$verabschiedung $name";

      2. Hi,

        Nein, es sind 2. Ich habe mich wohl zu ungenau ausgedrückt.

        Nein. Es ist wirklich nur ein Problem.
        Wenn Du es richtig machst, erzeugst Du keine Weiterleitung und das Fehlerdokument wird mit dem Statuscode 404 unter der eingegebenen URI ausgeliefert. Diese kannst Du auslesen.

        Das hab ich soebnen getan. das Ergebnis ist gleichbleibend. :-(

        Dann hast Du etwas falsch gemacht oder dedlfix Vermutung trifft zu.

        freundliche Grüße
        Ingo

  2. Hallo Brombeermilchtrinker,

    1.) Wie schafft man es mittels PHP, daß auf der erscheinenden Fehlerseite auch die ursprünglich aufgerufene Datei steht?

    Lass dir mal (nachdem du 2. gelöst hast) $_SERVER ausgeben, da ist bestimmt das richtige dabei.

    2.) Wie schafft man es, daß bei einem Auftreten eines 404ers die ursprünglich eingegebene URL in der Adresszeile stehen bleibt und _nicht_ die URL der Fehlerseite dort steh

    Lies dir mal die Anleitung zu ErrorDocument im Apache-Manual durch (insbesondere den Absatz nach dem zweiten Beispiel).

    Viele Grüße aus Freiburg,
    Marian

    --
    Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
    <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->