, 다만 예외 클래스를 확장하고 show_404()
기능을 오버라이드 (override) :
// v2.x: core/MY_Exceptions.php
// v1.x: libraries/MY_Exceptions.php
class MY_Exceptions extends Exceptions {
/**
* 404 Page Not Found Handler
*
* @access private
* @param string
* @return string
*/
function show_404($page = '', $log_error = TRUE)
{
$heading = "404 Page Not Found";
$message = "The page you requested was not found.";
// By default we log this, but allow a dev to skip it
if ($log_error)
{
// Custom code here, maybe logging some $_SERVER variables
// $_SERVER['HTTP_REFERER'] or $_SERVER['REMOTE_ADDR'] perhaps
// Just add whatever you want to the log message
log_message('error', '404 Page Not Found --> '.$page);
}
echo $this->show_error($heading, $message, 'error_404', 404);
exit;
}
}
당신이 favicon.ico
같은 물건을 받고 유지하는 경우, 이것은 당신의 잘못입니다 좋은 기회 거기를, 그래서 당신 그것을 들여다 볼 수도 있습니다.
$_SERVER['HTTP_REFERER']
당신에게 페이지가에서 요청 된 URL을 줄 것이다, 그래서 요청이 발생한 위치 당신은 당신의 위치에 또는 다른 곳이든 볼 수 있습니다 그냥 명확하게.
$_SERVER['REMOTE_ADDR']
는
http://php.net/manual/en/reserved.variables.server.php
간단한 예에 의해 당신에게 요청이 이루어진 IP 주소를 제공해야합니다 :
if ($log_error)
{
$msg = '';
if (isset($_SERVER['HTTP_REFERER']))
{
$msg .= 'Referer was '.$_SERVER['HTTP_REFERER'];
}
else
{
$msg .= 'Referer was not set or empty';
}
if (isset($_SERVER['REMOTE_ADDR']))
{
$msg .= 'IP address was '.$_SERVER['REMOTE_ADDRR'];
}
else
{
$msg .= 'Unable to track IP';
}
log_message('error', '404 Page Not Found --> '.$page.' - '.$msg);
}
파비콘은 그냥 현재 해결하고있어 예입니다./admin/mysql/images (무작위적인 것들)과 하나 또는 두 번 이상 반복되는 정말로 오래되거나 이상한 것들에 대한 시도와 같은 다른 것들이 있습니다. –
나는 CSS 배경 이미지가 누락 된 것처럼 바보 같은 일을 겪었 기 때문에 이전에 404 로그를 기록했다. 이 솔루션이 당신이 찾고 있던 라인을 따르지 않았습니까? –
그렇지만 실제로는 리퍼러를 얻는 방법을 설명하지 않습니다. Exceptions 클래스를 오버라이드 (override) 해, 거기에 무엇인가를 실시한다고 말하고 있습니다. –