如何报告 404 错误并包含未找到的请求 URL


how can i report 404 errors and include the requested url that was not found?

我已经用 $_GET 的数据库生成的页面做到了这一点,但我开始注意到来自非数据库生成的页面的 404。

例如,目录名称可能不正确:

site.com/mispelleddir/page-name

或者不知何故,目录被打印了两次:

site.com/dir/dir/page-name

我想知道尝试过的网址。有没有办法获取请求的 URL,该 URL 将 404 输入到 php 变量或其他东西中,以便我可以将其包含在我的错误报告中?和/或它链接到的页面。我知道我可以在谷歌网站管理员工具上看到这种事情,但他们需要 2 天才能向我报告。通常在那段时间里,我已经可以解决问题了。

现在我有一封电子邮件发送给我,从 404 页面报告它:

function report404($body)
{
    $to = "my email @gmail.com";    
    $subject = "website 404 error report";  
     if (!mail($to, $subject, $body)) 
    echo("<p>Message delivery failed...</p>");  
}

在 404 页面上像这样使用:

if($_GET['page']) report404("The sentence [$page] was sent to eng.php or jap.php and could not generate a translation page.");
else report404("404 error occured but not from eng.php or jap.php");

当我的数据库驱动页面在数据库中找不到内容时,它们会重定向到 404 页面设置 ?page="尝试页面"但是,如果 404 错误是由上述示例触发的,则这不起作用。

$_SERVER["REQUEST_URI"],如(这个问题)中所述[如何在Windows/IIS服务器上的PHP中获取当前页面的完整URL,应该可以获取URL。

然后,您可以使用梨电子邮件或sql存储它。