我正在尝试基于目录访问来突破我的网站的日志记录,因此我正在寻求对此answer(或此answer)的详细说明:在哪个文件中放置建议回答?
我将以下内容放入/etc/apache2/apache2.conf
(实际上通过Include my-logging.conf
):
SetEnvIf Request_URI "^/download/.+$" download_access
CustomLog /home/jamie/apache-logs/download.log common env=download_access
目录/home/jamie/apache-logs/
及其中的文件是通用可写的,但是当我通过浏览器(http://download/index.html
)访问资源时,主访问日志(/var/log/access.log
)已更新但不是日志我希望:/home/jamie/apache-logs/download.log
保持不变。
我有理由相信mod_setenvif
已启用:
$ sudo a2enmod setenvif
Module setenvif already enabled
我该如何做到这一点?
答案 0 :(得分:2)
头啪!
正则表达式错误:
SetEnvIf Request_URI "^/download/.+$" download_access
应该是:
SetEnvIf Request_URI "^/download/.*$" download_access
请注意*
与+
。
答案 1 :(得分:1)
编辑:
不,这是正则表达式。头巴是对的。
您是否想看看/etc/apache2/apache2.conf
或其他包含的网站文件中是否有地方(可能是/etc/apache2/sites-enabled/foo.conf
或/etc/apache2/conf/foo.conf
或其他...我使用不同的发行版)有不同的 CustomLog 定义?
你的陈述有可能超出你的观点。放置 CustomLog 指令的最佳位置是在定义您网站的<VirtualHost>
节中。这样,该指令将具有最高优先级,因此它将覆盖服务器范围的设置。我认为正在发生的是您的定义是为服务器设置默认值,但更具体的自定义日志语句位于VirtualHost中并覆盖它。