Andreas: htaccess Problem

Hallo!
Hab ein ganz seltsames htaccess Problem. Und zwar hatte ich bisher immer folgendes in der htaccess stehen:

ErrorDocument 404 /404.php

Das hatte bewirkt, dass wenn ich z.B die Datei xyz.htm(dier es nicht gibt) aufgerufen wollte, kam an dessen Stelle die 404.php, aber im Browserfenster blieb stehen www.server.de/xyz.htm. So konnte ich in der 404.php z.B. den Dateipfad auslesen und mir per mail schicken oder wer weiß was.

Jetzt hatte ich folgendes dazu geschrieben

ErrorDocument 404 /404.php

RewriteEngine On
RewriteRule ^ID([0-9]+)$ /site.php?ID=$1 [L,R=301]
RewriteRule ^([0-9]+)$ /site.php?ID=$1 [L,R=301]

was auch für sich prima funktioniert, aber seitdem werde ich immer richtig weitergeleitet, wenn ich eine nicht vorhandene Datei aufrufe, d.h. im Browerfenster steht dann auch www.server.de/404.php, also bekomme ich per mail nur diese Adresse zugeschickt, was mir herzlich wenig nützt :-)

Das dumme, wenn ich die Änderung wieder rückgängig mache, geht es trotzdem nicht mehr - spinne ich jetzt?

Wie kann ich das kombinieren?

Grüße
Andreas

  1. Hi,

    ErrorDocument 404 /404.php
    So konnte ich in der 404.php z.B. den Dateipfad auslesen
    und mir per mail schicken oder wer weiß was.

    Der "Dateipfad" ist aber eine seltsame Information dafür.

    Laß Dir innerhalb Deines 404-handlers mal das komplette Environment ausgeben. Der Apache dupliziert nämlich die Environment-Variablen des ursprünglichen URL in Variablen mit einem Präfox ("REDIRECT_", glaube ich mich zu erinnern), und auf die kannst Du in Deinem Handler zugreifen.

    Viele Grüße
          Michael

    1. Hallo!

      Der "Dateipfad" ist aber eine seltsame Information dafür.

      Also nicht den der 404.php, sondern den eingegebenen. Über $HTTP_REFERER bekomme ich teilweise auch noch die ggfs Fehlerhafte Seite(falscher Link?)!

      Laß Dir innerhalb Deines 404-handlers mal das komplette Environment ausgeben. Der Apache dupliziert nämlich die Environment-Variablen des ursprünglichen URL in Variablen mit einem Präfox ("REDIRECT_", glaube ich mich zu erinnern), und auf die kannst Du in Deinem Handler zugreifen.

      in welchem Handler? Meinst Du wieder die htaccess? Wie kann ich da mit REDIRECT_ drauf zugreifen - von wo?

      Grüße
      Andreas

      1. Hi Andreas,

        Laß Dir innerhalb Deines 404-handlers mal das komplette
        Environment ausgeben.
        in welchem Handler?

        Dein 404.php-Skript ist für mich ein "handler" - nämlich ein ErrorDocument, welches selbst CGI-artige Intelligenz besitzen darf. Und damit darf es auch das Environment lesen.

        Viele Grüße
              Michael