htaccess Problem
Andreas
- sonstiges
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
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
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
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