我想知道是否有可能将 apache 服务器自动重定向到默认错误页面标头中设置的错误代码()功能
让我说我有我的page.php,这个页面有这个:
<?php header("HTTP/1.1 404 Not Found"); ?>
浏览器(使用chrome中的web开发工具)显示响应已发送但未重定向到其默认错误页面,可能是因为该文件仍然存在。
我想要做的是,将我自己的特定文件重定向到默认错误页面,但保持在浏览器中显示的确切URL,与输入不存在的URL时服务器执行的操作相同
答案 0 :(得分:1)
如果我没记错的话,您可以将Apache配置为使用httpd.conf中的特定404页面,它会保持URL相同,但会传递404错误页面:
ErrorDocument 404 /404.php
在/404.php中,只需输入:
<html>
<head>
<title>Object not found</title>
</head>
<body>
<h1>Object not found</h1>
<p>The object <?php echo($_SERVER['PHP_SELF']); ?> could not be found on this server.</p>
</body>
</html>
答案 1 :(得分:0)
要获取HTTP响应代码,您可以使用http_response_code()功能。例如:
if( http_response_code() == 404 )
{
// Redirect to your valid custom page
header("Location: http://www.mypage.com/page_not_found.php" );
}
答案 2 :(得分:0)
重定向到不存在的页面。然后你得到404创建的apache,因为你确实登陆了一个不存在的页面。
这允许您“决定”谁获得该页面以及谁反弹。当然,如果他们的网络客户端有一个“nofollow”指令,它就会失败。
我不知道两者都有办法在那里有一个php页面并且在检查有问题的页面后让apache决定404。它已经放弃了对PHP的控制。因此,您可能需要通过转向不存在的文件将请求推回到apache。你甚至可以搞笑并重定向到相同的文件名...但是以.html而不是php结束它,如果不存在Poof你的网页浏览器有404错误。