何らかの理由で、PHP スクリプトを介して robots.txt を提供したいと考えています。robots.txt ファイル要求 (実際にはすべてのファイル要求) が単一の PHP スクリプトになるように、Apache をセットアップしました。
robots.txt をレンダリングするために使用しているコードは次のとおりです。
echo "User-agent: wget\n";
echo "Disallow: /\n";
ただし、改行を処理していません。robots.txt を正しくサーバー化して、検索エンジン (または任意のクライアント) が適切に認識できるようにする方法は? txt ファイルの特別なヘッダーを送信する必要がありますか?
編集1:
今、私は次のコードを持っています:
header("Content-Type: text/plain");
echo "User-agent: wget\n";
echo "Disallow: /\n";
まだ改行が表示されません ( http://sarcastic-quotes.com/robots.txtを参照)。
編集2:
何人かの人々は、それは問題なく、ブラウザに表示されないと言いました。これがどのように正しく表示されるのか興味がありました: http://en.wikipedia.org/robots.txt
編集3:
私はwgetを介して私のものとウィキペディアの両方をダウンロードし、これを見ました:
$ file en.wikipedia.org/robots.txt
en.wikipedia.org/robots.txt: UTF-8 Unicode English text
$ file sarcastic-quotes.com/robots.txt
sarcastic-quotes.com/robots.txt: ASCII text
最終的なまとめ:
主な問題は、ヘッダーを設定していなかったことです。ただし、別の内部バグがあり、Content-Type が html になっています。(これは、私のリクエストが実際には内部プロキシを介して提供されるためですが、それは別の問題です)。
ブラウザーが改行を表示しないといういくつかのコメントは、半分だけ正しかった-> content-type が text/plain の場合、最近のブラウザーは正しく改行を表示します。私は、実際の問題に厳密に一致し、上記のわずかに誤解を招くような誤解がない回答を選択しています:)。助けてくれてありがとう!
ありがとう
JP