PHP重定向页面状态代码有问题

PHP重定向页面状态代码有问题,php,http-status-code-410,Php,Http Status Code 410,我正在尝试使用php头函数,使用HTTP 410状态重定向页面 header("HTTP/1.1 410 Gone"); header('Location: http://domain.com/down.php'); exit; 问题是,即使我设置了410状态代码…状态代码也会自动更改为302 我也试过了 header('Location: domain.com/down.php', true, 410); exit; 它显示410重定向,但重定向页面不显示任何内容。它显示一个空白页 有人知

我正在尝试使用php头函数,使用HTTP 410状态重定向页面

header("HTTP/1.1 410 Gone");
header('Location: http://domain.com/down.php');
exit;
问题是,即使我设置了410状态代码…状态代码也会自动更改为302

我也试过了

header('Location: domain.com/down.php', true, 410);
exit;
它显示410重定向,但重定向页面不显示任何内容。它显示一个空白页


有人知道有没有解决这个问题的办法吗?

试着用一些恰当的引语

header("HTTP/1.1 410 Gone");
header("Location: http://domain.com/down.php");
exit;

最后一行标题是设置状态代码的正确方法:

header('Location: domain.com/down.php', true, 410);
但是,
位置
标题名称需要完全限定的URL,您的URL看起来不完整。那是无效的

其次,您不发送任何HTTP响应正文,因此浏览器只能显示一个空白页。要显示非空白页面,请提供响应正文:

header('Location: http://domain.com/down.php', true, 410);
echo '<h1>Gone.</h1><a href="http://domain.com/down.php">here.</a>';
exit;
header('位置:http://domain.com/down.php",对,410),;
回声“消失了”;
出口
提供响应主体非常有用,因为用户代理不需要自动跟踪
Location
头,尤其是对于,HTTP客户端不需要名为
Location
的响应头


可能您正在查找。

410错误表明Web服务器没有URL的转发地址,因此无法重定向到新的Web服务器。因此,使用第二个片段得到的空白页是正确的。 第一个代码段还提供了正确的结果-
Location
创建到给定地址的重定向。 因此,您的代码或PHP中没有错误。我不确定你是否做了你真正需要的事=)

应该有效。您忘记了URL中的协议。
另外,阿福,你可以用

header('Location: 'http://domain.com/'down.php');
header("HTTP/1.1 410 Gone");
exit;

但是您确定需要重定向和4xx HTTP状态吗?

您必须包括错误页面:

header("HTTP/1.0 410 Gone"); include_once("410.html"); exit();

你能说出你想做什么吗?您是要创建重定向还是要给出一条“Gone”消息(这不是重定向,而是一个错误)。我要重定向到一个页面,在该页面上我可以向用户显示一些有关站点维护的消息。请尝试:
标题(“HTTP/1.1 503”);包括('path/to/down.php');退出-您肯定不是在寻找重定向,也不是在寻找410 gone消息以进行站点维护。请参见vsushkov的评论。只需为作业使用正确的工具,您不能更改HTTP,因为您只是想更改。当我的站点处于维护模式时,我想将所有HTTP 410状态的页面重定向到维护页面。维护不是客户端错误。这是服务器端的东西。所以你需要一个5xx码。也就是说,503服务不可用啊,好的。实际上他应该有语法错误,对吧。
header("HTTP/1.0 410 Gone"); include_once("410.html"); exit();