【发布时间】: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