禁用特定文件夹的访问日志记录 - centos 6 / apache 2.4

disable access logging for specific folder - centos 6 / apache 2.4

我在我的一个域的特定文件夹中有一堆 php 脚本,这些脚本经常被访问(每秒 20 次以上)并且想禁用所有这些脚本的访问日志记录(文件夹).我在 Apache 2.4 上使用 CentOS 6 并且有 WHM/Cpanel.

我找到了有关如何使用环境变量和修改主机文件执行此操作的信息,但我不确定如何根据我的需要对其进行自定义。

我想为 /home/username/public_html/folder1/folder2/(其中的所有内容)禁用日志记录。

这是我在网上找到的执行此操作的方法(将其放入 vhost 包含文件中):

<IfModule mod_userdir.c> 
    UserDir public_html 
    SetEnvIf Request_URI "/nolog" dontlog
    CustomLog /var/log/apache2/useraccess_log combined env=!dontlog
</IfModule>

让我感到困惑的一件事是我有不同的日志位置设置。例如,如果我查找 /var/cpanel/userdata/username/domain.com,它会在顶部显示:

customlog: 
  - 
    format: combined
    target: /usr/local/apache/domlogs/domain.com
  - 
    format: "\"%{%s}t %I .\n%{%s}t %O .\""
    target: /usr/local/apache/domlogs/domain.com-bytes_log
documentroot: /home/username/public_html
group: username
hascgi: 0
homedir: /home/username

鉴于不同的日志位置,我将如何实现它?当我这样做时,我不介意禁用字节日志以及该文件夹的日志记录。这是太多的日志不断发生,考虑到它们被访问的频率,这对我来说根本没有用。

'username'和'domain.com'代表它们在上面的实际值。

默认情况下 cPanel/WHM 将 cPanel 帐户 (domains/sites/etc) 的访问日志存储在 /usr/local/apache/domlogs/ 中。这意味着对该站点的所有请求都记录在该文件中(包括来自文件夹 1、文件夹 2 等的请求)。

您可以尝试这样的操作:

/home/username/public_html/folder1/folder2/ 中创建一个 .htaccess 文件,内容如下:

<IfModule mod_userdir.c> 
    UserDir public_html 
    SetEnvIf Request_URI "/nolog" dontlog
    CustomLog /usr/local/apache/domlogs/domain.com combined env=!dontlog
</IfModule>

看看是否有效(基本上它应该允许记录但排除来自文件夹 1、文件夹 2 等的文件的请求)。

如果这不起作用,那么您可以编辑 /var/cpanel/userdata/username/domain.com 并注释 bytes_log 行和 access_log 行。那应该完全禁用该域的 http 请求的访问日志记录。您可能需要重新启动 httpd 和 cpanel 服务才能使更改生效。