hallo Waldfee,
Mal FreeBSD, mal Linux, mal WinXP ... ;-)
Apache 2.0.46.
Ja klar, warum frag ich auch nach :-( konnts mir ja denken.
Default. Prinzipell hat das ja auch nichts zu sagen
pah, Prinzipienreiter ...
wenn, dann sollte sich die Sache über eine htaccess-Datei regeln lassen
Richtig. Die Konfiguration für die Errormeldungen kannst du inne .htaccess schreiben, siehe http://httpd.apache.org/docs-2.0/mod/core.html#errordocument, das log-Format leider (noch) nicht.
Das Problem ist: Der Apache sieht einen 404er und lässt dann auf
Grund der ErrorDocument-Direktive meine PHP-Seite dran
rumfuhrwerken. Die aber akzeptiert entweder den Fehler oder eben
nicht. Wenn sie ihn nicht akzeptiert, weil sie es besser weiß,
schickt sie einen 200er-Header los.
So weit ist das meines Wissens tatsächlich "default".
Das Problem ist, daß der Apache in beiden Fällen einen Eintrag ins
LogFile macht.
Ähm, wirklich?
Wenn der 200er Header aber geschickt wurde soll er eben das _nicht_ tun, da ja dann eigentlich kein Fehler vorlag.
Tut er auch nicht, jedenfalls nicht "default" (und nicht bei mir). Die 200 gehört allenfalls in die access.log
Also (graphisch):
äks ...
User Request: /news/42
Apache: 404
Apache: htaccess => ErrorDocument index.php
index.php: Umschreiben in module=news&id=42
index.php: Anfrage an DB: Existiert Seite, die
module=news&id=42 erwartet?(1) Ja
index.php: 200 Ok
index.php: Angeforderte Seite abarbeiten
Apache: Eintrag LogFile: 404 NotFound /news/42 (*)
Da ist ein Denkfehler drin. Der Indianer hat ja bereits auf 404 reagiert. Daß du so gemein bist, da eine PHP-Seite zwischenzuspannen, ist ihm wurscht, und was die macht, ist ihm wohl auch wurscht. Wenn sie fertig ist, schreibt er einfach seinen Eintrag fertig, egal, was das PHP-Ding macht (ist ja möglicherweise ein neuer Prozeß).
Der Fehler liegt bei (*): Eben diese Zeile soll _nicht_ ausgeführt werden!
Jaja, ich habs kapiert, bloß dein Apache noch nicht. Es kann tatsächlich an den Einstellungen für die logfiles liegen, da müßte sich eine "Umleitung" zu einer Index-Seite (Standard-Dokument) irgendwo bei
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
einbauen lassen. Hab ich aber noch nie probiert. Schau mal nach, ob dein PHP-Script den "%(Referer)" oder den "%(Usewr-Agent)" (warum eigentlich den?) neu schreiben kann. Aber da fang ich auch an zu schwimmen.
Grüße aus Berlin
Christoph S.