如果$ _SERVER ['HTTP_REFERER']是404 Page Not Found

时间:2011-12-12 23:21:17

标签: php apache

在PHP中有没有找到404找不到的方法?

如果用户在404上结束,我希望将它们重定向到已知页面,但如果是由于404错误则显示不同的内容。

这样的东西
if($_SERVER['HTTP_REFERER'] == 404){
    echo("You've been redirected!");
}

提前致谢

1 个答案:

答案 0 :(得分:3)

PHP仅提供引导您访问当前页面的页面的路径,它无法检索该页面的状态代码。

当指定的页面不存在时,您不需要重定向页面。在Apache中,您可以将ErrorDocument指定为PHP文件,只需将查询字符串附加到文件(例如ErrorDocument /index.php?error=404),以便您的PHP文件知道所请求的页面不存在。这样,您可以在同一页面上直接向用户显示错误,并且URL不会丢失。您不需要会话或服务器变量,只需$_GET['error']来检查是否有错误代码提供给页面。

或者,您可以指定一个仅为404错误页面的预构建文档,例如ErrorDocument my404error.html,该页面将显示,而不会对未找到的页面进行任何服务器端处理。