robots.txt 文件必须放在 XAMPP 的物理根目录下,即 Windows 路径为 C:\xampp\htdocs\,macOS 路径为 /Applications/XAMPP/htdocs/,文件名严格为 robots.txt(全小写、无后缀、无空格)。

直接在 XAMPP 的 htdocs 根目录下放一个 robots.txt 文件,内容写 User-agent: * 和 Disallow: / 就生效——但要注意,这只是“声明不欢迎”,不是技术封锁,本地环境里它只对合规爬虫起作用。
robots.txt 文件必须放在 XAMPP 的哪个路径下?
必须放在 C:\xampp\htdocs\(Windows)或 /Applications/XAMPP/htdocs/(macOS)这个物理根目录里,且文件名严格为 robots.txt(全小写、无后缀、无空格)。如果站点是子目录(比如 http://localhost/myproject/),robots.txt 仍要放在 htdocs 下,而不是 myproject 里——因为爬虫只会请求 http://localhost/robots.txt,不会去子目录找。
常见错误:
- 把文件放进项目文件夹却忘了复制到
htdocs根目录 - 命名为
robots.txt.txt(Windows 隐藏扩展名导致) - 用中文编辑器保存成 UTF-8 with BOM,导致部分爬虫解析失败
robots.txt 内容怎么写才真正禁止所有爬虫?
最简有效写法是:
User-agent: * Disallow: /
这表示:对所有用户代理(*),禁止访问网站根路径及以下所有路径。注意:
-
Disallow: /是关键;写成Disallow:(空值)或Disallow: /index.html都不能阻止整站抓取 - 不需要逐个列出
Baiduspider、Googlebot等——User-agent: *已覆盖全部 - 如果本地测试多个站点(如
localhost/a、localhost/b),一份robots.txt就够,它对整个localhost域生效
为什么浏览器能打开页面,但爬虫仍可能忽略 robots.txt?
因为 robots.txt 是君子协议,不是访问控制机制:
- 真实搜索引擎(Google/Bing)会遵守,但本地运行的 Scrapy、curl、自写脚本默认也会检查并拒绝——除非你显式关闭
ROBOTSTXT_OBEY = False - 恶意爬虫或调试工具(如 Postman、HTTPie)完全无视该文件
- 它不影响服务器响应状态码:即使写了
Disallow: /,http://localhost/依然返回 200,只是“告诉对方别来” - 如果你真想阻断访问,得配合 Apache 配置(如
.htaccess拦 User-Agent)或 PHP 层判断,但那就超出robots.txt范畴了
最后提醒:XAMPP 默认没有开启 gzip 或强制 HTTPS,所以 robots.txt 文件本身不会被缓存或重定向干扰;但一旦你加了虚拟主机(vhost)或多域名配置,就得确认 Apache 是否把 localhost 请求正确路由到了 htdocs,否则爬虫根本拿不到这个文件。











