跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • PHP 中使用 header(“location:http://www.example.com/XXXX”)为什么有时候返回 302 有时候返回 200 呢?
未分類
6 2 月 2021

PHP 中使用 header(“location:http://www.example.com/XXXX”)为什么有时候返回 302 有时候返回 200 呢?

PHP 中使用 header(“location:http://www.example.com/XXXX”)为什么有时候返回 302 有时候返回 200 呢?

資深大佬 : 7DLNU56W 9

如题,php 中使用 header(“location:http://www.example.com/XXXX”),有时候返回 302,页面直接转跳到对应路径中( URL 也随之变化为目标路径),但有时候就只返回 200,内容时目标地址的内容,但 URL 还是原地址。

到底是什么原因导致这种差异,观察很多次相关代码,也没找到是因为什么导致的。求指点一二。

大佬有話說 (9)

  • 資深大佬 : mitu9527

    自己去看下 header 函数的手册,看完后我估计你就能找到原因了,就算找不到原因可能也知道该如何解决了。

  • 資深大佬 : elevioux

    盲猜应该是前面的代码已经输出了响应头。

    看下有没有错误,像 header already sent 之类的

  • 資深大佬 : hbolive

    这个时候能怀疑的只能是自己的代码。。

  • 主 資深大佬 : 7DLNU56W

    我认真观察过很多类似的代码,也看了关于 header 函数的说明,但还是没找到到底是由什么导致的。
    我准备晚上专门针对这个问题实验一下,如果有了结果,会在此告知大家的。

    PS:我有一种想法,因为 header 函数中有一个要求是此函数前不能输出任何内容,但之前两种情况都没有输出任何内容,不知道后面有输出会不会影响,我初步想针对这个测试一下。

  • 資深大佬 : KasuganoSoras

    可以试下 Header(“Location: http://www.example.com/XXXX”, true, 302) 强制指定 302 状态码,并且覆盖之前的所有 Location 字段

  • 主 資深大佬 : 7DLNU56W

    @KasuganoSoras 并没有效果

  • 資深大佬 : msg7086

    看上去就是已经输出了内容,比如 3 字节的 BOM 头这种不可见的内容。

  • 主 資深大佬 : 7DLNU56W

    @msg7086 我对已经输出内容的问题测试过,故意在 header 前面、后面分别输出内容,结果仍然是 302 转跳,不能导致 200 状态。

    目前仍然没有弄明白到底是什么原因导致 200 的,不过我有点怀疑会不会是 web 服务导致的?

  • 資深大佬 : dorothyREN

    这是在搞微信那个域名检测吧

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具