web-dev-qa-db-ja.com

特定のディレクトリにアクセスするときにApacheロギングを無効にする方法は?

Httpリクエストがディレクトリベースでログに記録されないようにApacheを取得するにはどうすればよいですか?似たようなことをしたい

<IfModule mod_userdir.c>
    UserDir public_html

    <Directory /home/*/public_html/nolog>
        Options NoAccessLog
    </Directory>
</IfModule>
7
nidi

特定のURLが要求されるたびに環境フラグを設定し、それに基づいてロギングをフィルタリングできます。

<IfModule mod_userdir.c> 
    UserDir public_html 

    SetEnvIf Request_URI "/nolog" dontlog
    CustomLog /var/log/Apache2/useraccess_log combined env=!dontlog
</IfModule> 

関連するすべての読み物は http://httpd.Apache.org/docs/2.2/env.html セクション「環境変数の使用-条件付きロギング」にあります。

これらの2行は、クライアントが文字列「/ nolog」を含むURLを要求するたびに、環境変数dontlogを設定します。

次の行のオプション「env =!dontlog」は、変数dontlogが設定されていない限り、クライアントアクセスをログに記録するようにCustomLogディレクティブに指示します。 !!ディレクティブを否定します。あなたが去るなら!要求されたURLに「/ nolog」が含まれるパスへのアクセスをonlyログよりも「env = dontlog」と読み取るようにします。

編集:「/ nolog」正規表現の^を削除して、例を操作し、さらに説明を追加しました。

10
Lukas Loesche