nid*_*idi 7 directory logging apache-2.2
如何获取 apache 以防止基于目录记录 http 请求?我想做类似的事情
<IfModule mod_userdir.c>
UserDir public_html
<Directory /home/*/public_html/nolog>
Options NoAccessLog
</Directory>
</IfModule>
Run Code Online (Sandbox Code Playgroud)
Luk*_*che 11
您可以在请求特定 URL 时设置环境标志并基于此过滤日志记录:
<IfModule mod_userdir.c>
UserDir public_html
SetEnvIf Request_URI "/nolog" dontlog
CustomLog /var/log/apache2/useraccess_log combined env=!dontlog
</IfModule>
Run Code Online (Sandbox Code Playgroud)
所有相关阅读都可以在http://httpd.apache.org/docs/2.2/env.html 部分“使用环境变量 - 条件记录”中找到
这两行的作用是,每当客户端请求包含字符串“/nolog”的 URL 时,它都会设置环境变量 dontlog。
在下一行中,选项“env=!dontlog”告诉 CustomLog 指令记录客户端访问,除非设置了变量 dontlog。这 !否定指令。如果你离开!以便它读取“env=dontlog”,而不是只记录对请求的 URL 中包含“/nolog”的路径的访问。
编辑:我删除了“/nolog”正则表达式中的 ^ 以处理您的示例并添加了更多解释。