出于某些原因,我希望通过PHP脚本来提供我的robots.txt。我已经设置了apache,以便所有文件请求都传递到一个单独的PHP脚本。
我用来生成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。(这是因为我的请求实际上是通过内部代理服务器提供的,但这是另一个问题)。
一些评论声称浏览器不会展示换行符,但这只是半对的 -> 现代浏览器如果内容类型为 text/plain,则可以正确显示换行符。 我选择了最接近真正问题并且没有上述略微误导性误解的答案 :)感谢大家的帮助和时间!
谢谢
JP