【问题标题】:how can i report 404 errors and include the requested url that was not found?如何报告 404 错误并包含未找到的请求 url?
【发布时间】:2013-10-24 00:28:27
【问题描述】:

我使用 $_GET 生成的数据库页面进行了此操作,但我开始注意到非数据库生成的页面出现 404。

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

site.com/mispelleddir/page-name

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

site.com/dir/dir/page-name

我想知道尝试过的那个 URL。有没有办法我可以获取将 404 提供给 php 变量或其他东西的请求 URL,以便我可以将其包含在我的错误报告中?和或链接到的页面。我知道我可以在谷歌网站管理员工具上看到这种东西,但他们需要 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="attempted page" 但如果 404 错误是由上述示例触发的,这将不起作用。

【问题讨论】:

  • 您可能会使用 sql 数据库,然后将 url 复制到其中。或者您可以使用邮件程序,将错误的网址通过电子邮件发送给自己。
  • 我如何检索 URL 以将其发送到电子邮件或数据库中,这就是我的问题
  • 至于email或者放入数据库,我使用pear mail作为email,mysql作为数据库。我无法在短时间内向您解释这些是如何工作的,但这为您提供了一些可供 Google 和研究使用的东西。
  • 如果我在 404 页面上使用 $_SERVER["REQUEST_URI"],这将只返回我的 404 页面的 URL,即 site.com/404.php 那么我如何使用它来做我想做的事?

标签: php html http-status-code-404


【解决方案1】:

$_SERVER["REQUEST_URI"],如 (this question)[How do I get current page full URL in PHP on a Windows/IIS server,应该可以为您获取 url。

然后您可以使用 pear email 或 sql 存储它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多