1

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"

日付のカスタマイズは難しくありませんでしたが、カスタム 404 ページを同時に使用しながらリクエスト URL を表示しようとすると問題が発生しました。ちょうど追加しました

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

lighttpd.confファイルに追加され、エラーを生成したリクエストの完全な URL ではなく、lighttpd_access.logredirected が含まれるようになりました。/error.html

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たが、ログエントリは-空白でした。カスタム 404 ページと組み合わせて元のリクエスト URL を表示しようとするときに使用する正しい構文を知っている人はいますか?

4

1 に答える 1

1

これは問題の正確な修正ではありませんが、壊れている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");
?>
于 2011-12-11T02:22:14.223 に答える