Можно ли настроить журнал Apache для всех доменов в один сингл централизованный файл, Кроме обычные файлы журналов (те, которые я тоже хочу).
Я бы даже предпочел только 404 (доступ), поэтому один файл журнала для всех доменов и только 404 сообщения (при сохранении файлов журнала, которые настроены в каждом виртуальном домене)?
ОБНОВЛЕНИЕ 1: доступ к файлам журнала
ОБНОВЛЕНИЕ 2: я ищу вариант конфигурации для всего сервера, я не хочу настраивать каждую конфигурацию. И сообщение должно быть зарегистрировано как в журнале доступа к домену и основной журнал.
Директива CustomLog имеет env=
параметр, который можно добавить в конце. Затем его можно настроить с помощью mod_rewrite
. Файл конфигурации должен содержать что-то вроде этого:
RewriteEngine On
# exclude directory index
RewriteCond %{REQUEST_URI} !/index\.(php|html?)$
# exlcude auto-index of directories
RewriteCond %{REQUEST_URI} !/$
# if the request is not a file, directory, or symlink
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# set the "notfound" environment variable
RewriteRule ^ - [E=notfound:true,L]
CustomLog /var/log/apache2/404-requests.log common env=notfound
CustomLog /var/log/apache2/requests.log common env=!notfound
Пользовательский файл журнала 404-requests.log
будет регистрировать события только тогда, когда notfound
среда установлена, а журнал requests.log
будет записывать все остальное.
Я так понимаю, у каждого VirtualHost есть свои собственные директивы ведения журнала? Если это так, они перезаписывают любые глобальные директивы.
Чтобы иметь глобальный журнал доступа, вам необходимо удалить или изменить директивы ведения журнала из конфигураций виртуального хоста.