1. 云栖社区>
  2. PHP教程>
  3. 正文

PHP不能使用 header 进行 301 跳转

作者:用户 来源:互联网 时间:2017-12-01 09:58:42

javascript监控

PHP不能使用 header 进行 301 跳转 - 摘要: 本文讲的是PHP不能使用 header 进行 301 跳转, 看到一个段PHP代码做跳转的时候是输出的 javascript 而没有使用 header(‘Location: xxx’) ,于是将其改为了 header(‘Location: xxx’)。 结果不能正常跳转,显示空白,监控 http 请

看到一个段PHP代码做跳转的时候是输出的 javascript 而没有使用 header(‘Location: xxx’) ,于是将其改为了 header(‘Location: xxx’)。

结果不能正常跳转,显示空白,监控 http 请求发现,即使在我设置完 header 完之后直接 exit 的情况下,服务器端仍然输出了 3bit 的字符。

于是开始找是哪输出的这 3bit ,从入口的 index.php 直到设置 header 的地方都没有任何输出。。。

最后只能用 exit 从 index.php 入口处一句一句代码的中断调试,追踪到引入 config 文件的时候发现这 3bit 的输出是从 config 文件中输出的。

打开 config 通读代码却没有发现任何输出语句,百思不得其解。。。

后来突然想到会不会是字符编码的问题,因为PHP会将文件的 bom 信息输出,PHP在有内容输出后又不能设置 header ,因此导致 header 函数无效。

查看该文件编码 utf8格式 ,印象中3年前搭建项目的时候应该全站源码都是 utf8无bom 格式。于是修改文件编码格式,问题解决。

这种莫名其妙的Bug其实只要开发的同学细心点就能避免的。

1年前一个同学遇到这个问题的时候问过我,因为我已离职,没有全面的检查代码就没有能解决。

没想到今年回来后,这个问题还是由我来解决了。。。

因为调这一个Bug,想起了一些往事,就罗哩叭嗦了。

总结:这三年,不值得。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript 监控 ,以便于您获取更多的相关知识。