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