0

我已经使用 $_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 错误,这将不起作用。

4

1 回答 1

0

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

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

于 2013-10-16T02:42:00.723 回答