Назад | Перейти на главную страницу

Как отключить бесполезные сообщения журнала Apache mod_rewrite?

У меня есть несколько правил mod_rewrite для перенаправления нежелательных запросов, сделанных ботами, на статическую страницу 404, например:

RewriteRule ^(.*)\.asp(.*)$ https://%{SERVER_NAME}/errors/404.html [L,R=301,NC]

У меня есть несколько десятков таких правил. Однако, просмотрев мой журнал ошибок Apache, я вижу, что для каждого отдельного запроса создается запись журнала для каждого отдельного правила, например:

[Wed May 30 10:52:59.740327 2018] [rewrite:trace3] [pid 2021:tid 140011088312064] mod_rewrite.c(476): [client 10.91.178.131:62065] 10.91.178.131 - - [example.com/sid#7f56e5f7bc18][rid#7f56dc0100a0/initial] applying pattern '^(.*)\\.asp(.*)$' to uri '/admin/', referer: https://example.com/admin/record/149/

Почему Apache применяет каждое правило к каждому URL-адресу, когда они явно не совпадают? Это увеличивает мой журнал ошибок и делает практически невозможным поиск фактических сообщений об ошибках. Как мне остановить это или, по крайней мере, остановить Apache от спама в файле журнала с этими записями?

Почему Apache применяет каждое правило к каждому URL-адресу, когда они явно не совпадают?

Это не обязательно применение правила, это проверка того, следует ли его применять, и для этого предназначена эта запись журнала «отладки». Этот дополнительный уровень ведения журнала не включен по умолчанию - кто-то явно включил его в конфигурации сервера и, по-видимому, (случайно) оставил его включенным. Это никогда не должно быть включено постоянно на рабочем сервере.

На Apache 2.4+ найдите LogLevel в конфигурации вашего сервера / виртуальном хосте. Например:

LogLevel rewrite:trace3

Обратите внимание, однако, что можно установить уровень журнала нескольких модулей (или все модули) с помощью одной директивы. Установка LogLevel к debug, trace1 .. trace8 считается уровнем «отладки». Чем выше уровень, тем больше сообщений регистрируется.

И либо удалите его, либо закомментируйте, либо установите значение по умолчанию:

LogLevel warn

Ссылка:
https://httpd.apache.org/docs/2.4/mod/core.html#loglevel