Hallo,
In meiner .htaccess habe ich folgendes definiert:
ErrorDocument 404 http://domain.tld/seite.php?a=error
Damit will ich erreichen, dass bei einer nicht gefunden Seite nicht die Standard-404-Seite des Servers, sondern die von mir gewuenschte Seite http://domain.tld/seite.php?a=error aufgerufen wird.
Das klappt auch wunderbar. Das Problem kommt jetzt:
Ich habe meiner Website ein selbstgebasteltes Log-System verpasst. Und das sagt mir, dass diese von mir gewuenschte Error-Seite unwahrscheinmich oft aufgerufen wird. Ok, denk ich mir erstmal, kann ja sein. Das koennen Suchmaschinen-Robots sein oder Leute, die auf irgendwelche toten Links geklickt haben oder weiss der Geier.
Aber dann schau ich mir die HTTP-Referer der Leute an, die auf diese Error-Seite gekommen sind. (Die hole ich mir in PHP mit getenv("HTTP_REFERER").) Und da sehe ich, dass die Error-Seite immer dann aufgerufen wird, wenn eine bestimmte andere Seite auf meinem Webspace aufgerufen wird, ich nenne sie mal andere_seite.php. Oder anders gesagt: Die mysterioesen Aufrufe der Error-Seite haben fast immer die andere_seite.php als HTTP-Referer.
Ok, ich schaue mir die andere_seite.php an. Die funktioniert aber tadellos. Es ist eine Seite, mit der man sich Bild um Bild durch eine Foto-Galerie klicken kann. Und ich stelle fest, dass jedesmal, wenn man auf "naechstes Foto" klickt und die Seite neu geladen wird, die Error-Seite einmal als aufgerufen gelogt wird - obwohl sie fuer den Betrachter der andere_seite.php ueberhaupt nicht sichtbar wurde.
In Kuerze: Irgendwie scheint mir der Server das ErrorDocument 404 aufzurufen, obwohl das nicht noetig waere und ohne, dass es jemand zu Gesicht bekaeme.
Natuerlich habe ich daran gedacht, dass der Bug in meinem Log-System liegen koennte. Habe geschaut und nichts gefunden. Ausserdem ist die andere_seite.php gar nicht an das Log-System angeschlossen und kann deshalb keine fehlerhaften Eintraege machen oder sowas.
Das ist komisch. Und deshalb schreibe ich diesen ellenlangen Text in der Hoffnung, dass den tatsaechlich jemand liest und dann auch noch versteht, was ich meine und dann auch noch eine Idee hat, an was es liegen koennte. (Das waer spitze!)
Die Daten meines Servers:
Apache/1.3.29 (Unix)
PHP/4.3.4
Danke schonmal fuer alle Tips -
Maze
PS: Admins, fuehlt Euch frei, den Thread ggf. in ein Forum zu verschieben, in das er besser passt.
In meiner .htaccess habe ich folgendes definiert:
ErrorDocument 404 http://domain.tld/seite.php?a=error
Damit will ich erreichen, dass bei einer nicht gefunden Seite nicht die Standard-404-Seite des Servers, sondern die von mir gewuenschte Seite http://domain.tld/seite.php?a=error aufgerufen wird.
Das klappt auch wunderbar. Das Problem kommt jetzt:
Ich habe meiner Website ein selbstgebasteltes Log-System verpasst. Und das sagt mir, dass diese von mir gewuenschte Error-Seite unwahrscheinmich oft aufgerufen wird. Ok, denk ich mir erstmal, kann ja sein. Das koennen Suchmaschinen-Robots sein oder Leute, die auf irgendwelche toten Links geklickt haben oder weiss der Geier.
Aber dann schau ich mir die HTTP-Referer der Leute an, die auf diese Error-Seite gekommen sind. (Die hole ich mir in PHP mit getenv("HTTP_REFERER").) Und da sehe ich, dass die Error-Seite immer dann aufgerufen wird, wenn eine bestimmte andere Seite auf meinem Webspace aufgerufen wird, ich nenne sie mal andere_seite.php. Oder anders gesagt: Die mysterioesen Aufrufe der Error-Seite haben fast immer die andere_seite.php als HTTP-Referer.
Ok, ich schaue mir die andere_seite.php an. Die funktioniert aber tadellos. Es ist eine Seite, mit der man sich Bild um Bild durch eine Foto-Galerie klicken kann. Und ich stelle fest, dass jedesmal, wenn man auf "naechstes Foto" klickt und die Seite neu geladen wird, die Error-Seite einmal als aufgerufen gelogt wird - obwohl sie fuer den Betrachter der andere_seite.php ueberhaupt nicht sichtbar wurde.
In Kuerze: Irgendwie scheint mir der Server das ErrorDocument 404 aufzurufen, obwohl das nicht noetig waere und ohne, dass es jemand zu Gesicht bekaeme.
Natuerlich habe ich daran gedacht, dass der Bug in meinem Log-System liegen koennte. Habe geschaut und nichts gefunden. Ausserdem ist die andere_seite.php gar nicht an das Log-System angeschlossen und kann deshalb keine fehlerhaften Eintraege machen oder sowas.
Das ist komisch. Und deshalb schreibe ich diesen ellenlangen Text in der Hoffnung, dass den tatsaechlich jemand liest und dann auch noch versteht, was ich meine und dann auch noch eine Idee hat, an was es liegen koennte. (Das waer spitze!)
Die Daten meines Servers:
Apache/1.3.29 (Unix)
PHP/4.3.4
Danke schonmal fuer alle Tips -
Maze
PS: Admins, fuehlt Euch frei, den Thread ggf. in ein Forum zu verschieben, in das er besser passt.
Kommentar