Apache win: conf > log > SetEnvIf - Problem

  • Hallo liebe Leser/innen,

    ich schlage mich schon seit Tagen mit einem Problem herum, das ich nicht gelöst bekomme, vermutlich, weil ich was falsch verstanden habe und nun gedanglich nicht mehr aus der Sackgasse finde...

    Umgebung im Groben:

    httpd.conf (mit allgemeinen Anweisungen)
    darin enthalten
    "SetEnvIf Remote_Host "irgendwas\.dynip\.net" dontlog"
    um Zugriffe meines eigenen Rechners zu erkennen
    weiterhin Aufruf der ganzen vDomänen via INCLUDE (jede TLD hat eine eigene "domain.conf", um den Überblick zu behalten)

    In der jeweiligen "domain.conf" mache ich dann diesen hier:

    ErrorLog "/_www_/~log.err~/err_tld-1.log"
    <IfDefine dontlog>
    CustomLog "/_www_/~log.acc~/acc_tld-1.log" combined
    </IfDefine>

    Nun aber logt der Server rein gar nichts mehr mit, auch nicht meine eigene IP / eigenen Host. Setze ich "!dontlog", was eigentlich logischer wäre, logt der Server wieder alles mit *OberGrummel*

    Es wäre echt toll, wenn mir da mal wer meinen Denkfehler vor Augen führen könnte?!?

    Baba
    Micha

  • Mit

    Code
    SetEnvIf Remote_Host "irgendwas\.dynip\.net" dontlog

    sagst Du ja das jegliche Aufrufe über

    Code
    http://irgendwas.dynip.net

    nicht mitgeloggt werden sollen. Wenn alle anderen diese Domain verwenden, dann werden deren Aufrufe folglich nicht mitgeloggt.

    Wenn Du deine eigenen Aufrufe nicht mitzählen willst müsstest Du konfigurieren, dass er einzig den Aufruf über irgendwas.dynip.net zählt und du selbst musst über localhost gehen.

  • ... danke für die schnelle Antwort, aber da komme ich jetzt nicht mit, oder wir missverstehen uns.

    Der Server (bei HostEurope gemietet) beherbergt diverse TL-Domänen ala domäne1.de, domäne2.de, u.s.w.
    Mein(e) Rechner daheim benutzen DynDNS als komfortable Möglichkeit z.B. für die automatische Datensicherung WAN -> LAN, WebDAV etc.

    Also wollte ich dem Server im WAN sagen, das er Zugriffe aus dem LAN, aufgelöst über DynDNS, nicht mitloggen soll.

    Mein Verständnis der Sache war, das ich mit aktivem mod_setenvif und der o.g. Zuweisung in etwa folgendes mache ...

    Wenn zugreifende Host = (string) dann setze dontlog
    (SetEnvIf Remote_Host "irgendwas\.dynip\.net" dontlog)

    ... und dann sage ...

    Wenn dontlog nicht gesetzt dann schreibe ins Logfile
    (<IfDefine dontlog> CustomLog "/_www_/~log.acc~/acc_tld-1.log" combined </IfDefine>)

    Das ist doch m.E. nichts anderes als eine simple IF...THEN, wie aus diversen Hochsprachen bekannt, oder übersehe ich da was?

    Baba
    Micha

  • Nachtrag:

    Nach vielen Versuchen kann ich nun ziemlich sicher behaupten, das ...

    SetEnvIfNoCase Remote_Host "blabla.selfip.net" dontlog

    ... und Varianten davon _nicht_ korrekt ausgewertet werden, zumindest nicht unter Apache/win

    So bald ich die Version mit der IP- Adresse hernehme ala ...


    SetEnvIfNoCase Remote_Addr "1.2.3.4" dontlog

    ... klappt das vollkommen schmerzfrei *Kopfschüttel*

    Also habe ich mir ein kleines PHP- Script geschrieben, welches die IP aus dem DynDNS holt, das Geschraffel davor und dahinter als String anfügt und in eine Datei "lan_ip.conf" schreibt. Diese lese ich mit "include" in die httpd.conf ein und stosse jede Minute eine CMD an, die das Script local ausführt...Thema durch...

    Nicht elegant, aber offensichtlich die einzige Möglichkeit im Moment...

    Baba
    Micha