我有一个带有 Apache 的 Debian 8。我的/etc/apache2/sites-available/000-default.conf
就像下面这样。
我可以询问 Apache 如何以及在哪个配置文件中不登录/var/log/apache2/other_vhosts_access.log
来自以下位置的流量http://www.mysite2.org或来自http://www.mysite3.org/subdir/?所有其余的内容都应像往常一样记录到同一文件中other_vhosts_access.log
。
<VirtualHost *:80>
ServerName www.mysite1.org
DocumentRoot /home/www/mysite1
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.mysite2.org
DocumentRoot /home/www/mysite2
<Directory />
...
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.mysite3.org
DocumentRoot /home/www/mysite3
<Directory />
...
</Directory>
</VirtualHost>
+ 10 other virtual hosts
答案1
每个虚拟主机都需要定义错误日志和通用日志,如果没有这些,则使用默认日志,另请注意,值得创建一个默认虚拟主机,它可以捕获不属于您的域之一的所有流量(将其 dns 指向您网站的人) )。这可能会对搜索结果产生不良后果,因为它是欺骗内容。
所以,在每个虚拟主机中;
ErrorLog "logs/web1-error_log"
CustomLog "logs/web1-access_log" common
ErrorLog "logs/web2-error_log"
CustomLog "logs/web2-access_log" common
更新:
没有看到关于不记录特定目录的部分,这可以通过设置环境变量来实现。
答案2
感谢@MikeJonesey 的回答。要添加更多详细信息,这是解决方案,请输入/etc/apache2/sites-available/000-default.conf
:
<VirtualHost *:80>
ServerName www.mysite3.org
DocumentRoot /home/www/mysite3
<Directory />
...
</Directory>
SetEnvIf Request_URI "^/subdir(.*)$" dontlog
CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined env=!dontlog
</VirtualHost>