假设我有一个网站,用于托管针对一组非常特定的用户的社区生成内容。现在,假设为了建立一个更好的社区,我有一个题外话区域,社区成员可以在其中发布或谈论他们想要的任何内容,而不管网站的主题是什么。
现在,我希望大部分内容都能被 Google 索引。值得注意的例外是题外话内容。每个线程都有自己的页面,但所有线程都列在同一个文件夹中,所以我不能只从某个文件夹中排除搜索引擎。它必须是每页的。传统的 robots.txt 文件会变得很大,那么我还能如何做到这一点呢?
假设我有一个网站,用于托管针对一组非常特定的用户的社区生成内容。现在,假设为了建立一个更好的社区,我有一个题外话区域,社区成员可以在其中发布或谈论他们想要的任何内容,而不管网站的主题是什么。
现在,我希望大部分内容都能被 Google 索引。值得注意的例外是题外话内容。每个线程都有自己的页面,但所有线程都列在同一个文件夹中,所以我不能只从某个文件夹中排除搜索引擎。它必须是每页的。传统的 robots.txt 文件会变得很大,那么我还能如何做到这一点呢?
这适用于所有表现良好的搜索引擎,只需将其添加到<head>
:
<meta name="robots" content="noindex, nofollow" />
如果使用 Apache,我会使用 mod-rewrite 将 robots.txt 别名为可以动态生成必要内容的脚本。
编辑:如果使用 IIS,你可以使用ISAPIrewrite来做同样的事情。
您可以通过用生成输出的动态脚本替换 robots.txt 来实现它。使用 Apache,您可以制定简单的 .htaccess 规则来实现这一目标。
RewriteRule ^robots\.txt$ /robots.php [NC,L]
与@James Marshall 的建议类似 - 在 ASP.NET 中,您可以使用 HttpHandler 将对 robots.txt 的调用重定向到生成内容的脚本。
仅针对该线程,请确保您的头部包含 noindex 元标记。除了在 robots.txt 中阻止之外,这是告诉搜索引擎不要抓取您的页面的另一种方法
请记住,robots.txt 禁止不会阻止 Google 将包含来自外部网站的链接的页面编入索引,它所做的只是阻止内部抓取。请参阅http://www.webmasterworld.com/google/4490125.htm或http://www.stonetemple.com/articles/interview-matt-cutts.shtml。
您可以通过限制机器人元标记来禁止搜索引擎读取或索引您的内容。通过这种方式,蜘蛛会考虑您的指示,并且只会索引您想要的页面。
通过 robots.txt 阻止动态网页使用此代码
用户代理: *
禁止:/setnewsprefs?
不允许:/index.html?
不允许: /?
允许:/?hl=
不允许:/?hl=*&