我有 下面的一段代码在顶部进行301重定向,没有任何空格,并且没有任何代码,但是它给出了错误,
Warning: Cannot modify header information - headers already sent by
<?php
require_once('../../config.php');
header("HTTP/1.1 301 Moved Permanently");
header("location: http://www.myapp.com/courses/mycourse-new.php");
?>
我尝试使用ob_start,但没有用。我已经为许多文件做了301而没有任何问题。如何解决这个问题。
答案 0 :(得分:3)
确保在文件和附带文件中<?php
之前绝对没有输出字符(甚至不是空格或换行符)。
答案 1 :(得分:0)
您是否在代码的第一行使用ob_start()
(在html代码之前)?
答案 2 :(得分:0)
您可以使用
禁用输出缓冲ini_set('output_buffering', 0);
在PHP文件中或设置
output_buffering = Off
在php.ini中,一切都会正常工作。
答案 3 :(得分:0)
删除关闭的php标记?>
后尝试使用
Why do some scripts omit the closing php tag '?>'?
PHP closing tag
答案 4 :(得分:-1)
使用ob_start()
之类的...
`<?
ob_start();
require_once('../../config.php');
header("HTTP/1.1 301 Moved Permanently");
header("location: http://www.myapp.com/courses/mycourse-new.php");`
Ob_start将缓冲所有输出,直到脚本exit()和缓冲区释放。要使用标头重定向,不应该已经发送任何其他标头。
如果您之前有空位,也可以更改