0

重複の可能性:
PHP の「警告: ヘッダーは既に送信されています」

次のコードを使用して、上部にスペースを入れずに 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 を実行しました。この問題を解決する方法。

4

5 に答える 5

3

<?phpファイルとインクルードされたファイルの両方で、の前に出力文字 (空白や改行でさえも) がまったくないことを確認してください。

于 2012-11-30T10:34:58.173 に答える
0

ob_start()コードの最初の行 (html タグの前) で使用していますか?

于 2012-11-30T10:32:40.517 に答える
0

出力バッファリングを無効にすることができます

ini_set('output_buffering', 0);

あなたのPHPファイルまたはセットで

output_buffering = Off

php.ini で、すべてが正常に動作します。

于 2012-11-30T10:34:07.720 に答える
0

?>
phpの終了タグを削除してから試す
PHP 終了タグ

于 2012-11-30T10:34:44.703 に答える
-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() およびバッファ解放まで、すべての出力をバッファリングします。ヘッダーを使用してリダイレクトするには、他のヘッダーが既に送信されていてはなりません。

または、前にスペースがある場合は変更できます

于 2012-11-30T10:36:11.380 に答える