1

Lighttpd 1.4.28에서 내 액세스 로그를 사용자 정의하는 데 도움이 필요합니다. 지금까지 나는 strftime(3) 형식으로 날짜를 표시하도록 구성을 수정할 수있었습니다. 기본 날짜 형식은 너무 길어요. 여기 여기 /etc/lighttpd/lighttpd.confLighttpd mod_accesslog가 사용자 정의 오류 페이지로 Request_URI를 표시 할 수 없습니다.

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 페이지 사용 난 그냥 lighttpd.conf 파일에

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

을 추가하고, lighttpd_access.log 지금은 대신 오류를 생성 한 요청의 전체 URL의, /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을 표시 할 때 올바른 구문을 아는 사람은 누구입니까?

답변

1

이것은 정확한 문제는 아니지만 오류 처리기 대신 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"); 
?>