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

Как я могу запретить Apache регистрировать ошибки 404?

Итак, всякий раз, когда пользователь пытается получить файл на моем сервере Apache, которого не существует, я получаю строку 404 в журнале доступа:

[29/Sep/2010:12:14:45 +0200] "GET /asdf HTTP/1.1" 404

И я также получаю это в журнале ошибок:

[Wed Sep 29 12:14:45 2010] [error] [client] File does not exist: /www/site/asdf

Есть ли способ подавить отображение ошибки 404 в журнале ошибок - только в журнале доступа?

ErrogLog (http://httpd.apache.org/docs/2.2/mod/core.html#errorlog) не условно. Вы можете отправить журналы в системный журнал или сценарий и отфильтровать их.

Да, ты можешь исключить их из журнала ошибок, но оставить их в журнале доступа. Просто добавьте эти строки в .htaccess:

# Don't log missing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(content\asdf)$ - [R=404,L]

Он использует mod_rewrite.

RewriteCond нужен, чтобы убедиться, что этот файл действительно не существует. Существующие файлы будут обслуживаться как обычно.

R = 404 сообщает об отправке кода состояния 404 Not Found, когда клиент обращается к любым файлам, содержащим asdf. Вам необходимо изменить выражение в скобках в последней строке в соответствии с вашими потребностями.

Этот ответ тоже есть Вот.

Попробуйте поэкспериментировать с директивой LogLevel (http://httpd.apache.org/docs/current/mod/core.html#loglevel). Это не совсем то, что вам нужно, но тем не менее может удовлетворить ваши потребности.

Ошибка 404 определяется в httpd.conf или .htacces следующим образом:

ErrorDocument 404 /404.html

Вы можете перенаправить на страницу индекса:

ErrorDocument 404 /index.html

или вы можете создать пустую страницу blank.html и изменить конфигурацию на: ErrorDocument 404 /blank.html