【问题标题】:The 'Location' Header is not working at all in PHP“位置”标头在 PHP 中根本不起作用
【发布时间】:2012-08-20 19:57:06
【问题描述】:

我正在编写一个 PHP 代码,并且有 header('Location: '.$location, TRUE, 200);,它没有重定向到 $location(这里的值是“https://thepiratebay.se/”)。我已经列出了所有存在的标题,请帮助。

如您所见,Location 标头存在但未重定向到。为什么?

经过测试的浏览器:Chrome、Firefox、IE、Safari。

标题是(如 Chrome 所示):

HTTP/1.1 200 OK
Date: Sat, 25 Aug 2012 15:10:54 GMT
Server: Apache/2.4.2 (Win32) PHP/5.4.4
X-Powered-By: PHP/5.4.4
Location: https://thepiratebay.se/
Content-Length: 5935
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

【问题讨论】:

  • 如果浏览器没有重定向,这不是 PHP 的错。显然,header() 调用做得很好。

标签: php redirect header location


【解决方案1】:

您的错误是200 响应代码。

改变这一行:

header('Location: '.$location, TRUE, 200);

成为

header('Location: '.$location, TRUE, $code);

$code 是 301 或 302(永久移动与临时移动)。

【讨论】:

  • 这行得通!但我感到困惑的是,这在早些时候起作用,现在它只是不起作用。无论如何谢谢!
  • 好吧,如果你完全跳过响应码参数,PHP 会自动为Location 标头发送一个 302 响应码。
  • 不要忘记 307 和 308(从 HTTP/1.1 开始)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多