重複の可能性:
PHPによってすでに送信されているヘッダー
私のウェブサイトのメインURLは、すべての訪問者をローカルサブページにリダイレクトします。これを実現するために、PHPとともにfreegeoip.netを使用します。
<!DOCTYPE html>
<html>
<head>
<title>MLP Today</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="google-site-verification" content="*snip*" />
<?php
$csv = str_getcsv(file_get_contents('http://freegeoip.net/csv/'));
$geoloc = strtolower($csv[1]);
if ($geoloc == 'hu' ||
$geoloc == 'ro'){
header("Location: hu/");
}
else if($geoloc == 'nl' ||
$geoloc == 'be' ||
$geoloc == 'de' ||
$geoloc == 'sr' ||
$geoloc == 'au'){
header("Location: de/");
}
else {
header("Location: en/");
}
?>
<link rel="icon" type="image/png" href="img/favicon/favicon.png">
</head>
<body>
</body>
</html>
ただし、ローカルのApacheサーバーからサイトをロードすると、次のようなエラーが発生します。
警告:ヘッダー情報を変更できません-D:\ DJDavid \ Dokumentumok \ Dropbox \ Web \ Today \ indexの(D:\ DJDavid \ Dokumentumok \ Dropbox \ Web \ Today \ index.php:7で開始された出力)によって既に送信されたヘッダー。 13行目のphp
13行目は次のとおりです。header("Location: hu/");
以前にいくつかの回答を読みましたが、それらはすべて、Apache Webサーバーではなく、ライブWebサイトを参照していました。PHPコードの前後にすべてを削除する必要があると言う人もいましたが、それは役に立ちませんでした。また、ご覧のとおり、私は何も出力または返していませんが、これがこの問題の2番目に多い原因でした。3番目に提案されたのは、を使用することob_start()
でしたが、それも役に立ちませんでした。
重要なのは、それはWebホスト上で完全に機能しますが、localhost
(ローカルサーバー)を使用してライブに移行する前に変更をプレビューしているときは機能しません。
何かを変えないといけないと思いますが、なにかhttpd.conf
わかりません。