我有一个提供动态内容的页面
/for-sale
页面应该至少有一个参数
/for-sale?id=1
我想禁止
/for-sale
但允许
/for-sale?id=*
不会影响机器人抓取网站的能力或对 SERP 产生负面影响的可能性。
这可能吗?
最佳答案
使用robots.txt
无法实现您想要的功能:
- 机器人排除标准中没有
Allow:
这样的东西,尽管 M. Koster 编写的 RFC 如此建议(并且一些爬虫似乎支持它) . - 不支持查询字符串或通配符之类的内容,因此禁止“裸”版本将禁止所有内容。肯定不是你想要的。
- robots.txt 中的任何内容都是完全可选的,只是一个提示。机器人根本不需要请求该文件或尊重您所说的任何内容。
- 您几乎肯定会发现一个或多个网络爬虫程序的上述任何或全部内容都是错误的,而您却无从得知。
为了解决实际问题,您可以将重写规则放入 Apache 配置文件中。有现成的代码可用于将带有查询字符串的 URL 转换为普通 URL(example 来自快速网络搜索)。
(或者,您可以将 id
查询字符串保留在适当的位置。占流量 85% 的一个搜索引擎可以很好地消化它们,而占流量 90% 的另外两个搜索引擎则可以很好地处理它们。 Google 也做不到的事情。
因此,您真正担心的只是没人使用的搜索引擎和垃圾邮件收集器。)
关于linux - robots.txt - 禁止没有查询字符串的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13568970/