Lighttpd mod_accesslog не может отображать Request_URI с пользовательскими страницами ошибок - PullRequest
1 голос
/ 24 августа 2011

Мне нужна помощь, чтобы настроить журнал доступа на Lighttpd 1.4.28.До сих пор я был в состоянии изменить конфигурацию для отображения даты в формате strftime (3) .Формат даты по умолчанию слишком длинный.Вот соответствующие строки из /etc/lighttpd/lighttpd.conf

accesslog.format = "%s [%{%d%b-%H:%M}t] %h      %b %U   *       %{From}i|%{Via}i|%{Referer}i    *
accesslog.filename = "/web/lighttpd_access.log"

А вот моя запись в access.log:

404 [24Aug-16:55] 98.68.178.112 345 /phpMyAdmin/scripts/setup.php   *   -|-|-   *   "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1"

Настройка даты не была сложной, но я столкнулся с проблемой, пытаясьотображать URL запроса при одновременном использовании пользовательских 404 страниц.Я просто добавил

server.error-handler-404 = "/error.html"

в файл lighttpd.conf, и теперь lighttpd_access.log содержит перенаправленный /error.html вместо полного URL-адреса запроса, который выдал ошибку.

200 [24Aug-16:06] 98.68.178.112 1 /error.html   *   -|-|-   *   "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1"

Я также попытался добавить %{Request_URI}i, но запись в журнале была - пустой.Кто-нибудь знает правильный синтаксис для использования при попытке отобразить исходный URL-адрес запроса в сочетании с пользовательскими страницами 404?

1 Ответ

1 голос
/ 11 декабря 2011

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

lighttpd.conf:

server.error-handler-404 = "/error.php"

error.php:

<?
$brokenpath = $_SERVER["REQUEST_URI"]."\n";
$out = fopen("/foo/bar/404.txt", "a"); // save broken urls here
fputs($out, $brokenpath);`
fclose($out);
header("Location: http://domain.com/error.html");
?>
...