在我的web服务的一个端点中,我在http响应标头中添加了一些行,然后它被重定向到服务中的另一个url。这是301重定向,当这个301响应被发送到浏览器时,我写的头以某种方式被删除了。
我调用PHP中的头函数来写入头,然后调用重定向进行301重定向。我错过了什么步骤吗?这是一个粗略的流程:
header("X-my_custom_header:blahblah");
redirect($new_url);
重定向函数正在调用3个标头函数:
header("HTTP/1.1 301 Moved Permanently");
header( "Cache-Control: no-cache");
header("Location: ".$new_url);
新发现:
如果我在重定向函数中移动新的标题添加行(作为函数中的第4行),那么我可以看到这行。
提前感谢!
301重定向触发来自浏览器的新请求。因此,在服务器上创建新的响应,并且该新的响应不具有作为301响应的一部分生成的任何报头。
如果需要持久化一些数据,则需要将其存储在会话中,或者通过301 URL上的GET参数进行传递。