# vifo.app —— 公开的营销面全部可抓;用户数据与鉴权路径一条不放。 # # 读这份文件之前先记住一件事:robots.txt 的默认是「没被 Disallow 的就是可抓」。 # 所以 /guide/*、/sample/*、/connect、/privacy、/terms、/llms.txt、/sitemap.xml # 不需要任何 Allow 行。开头那条 `Allow: /$` 已经删了——它只匹配首页那一个地址, # 一个字节的行为都没放行,却让每个读到的人(包括审核员和爬虫运营方)以为 # 「这站只开了首页」。 # # ── 检索爬虫与训练爬虫 ── # 隐私政策里「不把你的内容交给第三方模型训练」那句说的是**用户内容**——行程、 # 照片、来言。那些东西要么要登录,要么在下面的令牌路径里,两条路这里都挡住了。 # 而这十几页公开营销文案本来就是写来给人和模型读的,所以检索与训练同等放行, # 下面**没有**任何一条按「是不是训练爬虫」分的规则。两组分开写只为把态度写明白。 # 哪天要收紧训练那一侧,改法是把第三组的 Disallow 换成 `Disallow: /`, # 不要去动前两组。 # # ── 为什么三组的 Disallow 一模一样 ── # 爬虫只认与自己 User-agent 匹配的那一组,匹配上了就**完全忽略 `*`**。 # 所以命名组里少写一条 Disallow,等于单独对那个爬虫开了一条私密路径—— # 一个只对它成立、而且没有任何人看得见的洞。test/static-pages.spec.ts 有一条 # 断言钉住「每一组的 Disallow 集合逐字相同」:往任何一组里加路径而漏了另两组, # 它先红。 # ── 第一组:所有爬虫的默认 ── User-agent: * # 登录后才有内容的页面(爬虫拿到的只会是一个空壳) Disallow: /app Disallow: /account Disallow: /trip Disallow: /trip.html Disallow: /search Disallow: /unfiled Disallow: /upload Disallow: /keys Disallow: /signin Disallow: /pay # 令牌路径:分享页、show 链接、上传链接。这三条的地址本身就是凭证, # 进了索引等于把凭证发出去 Disallow: /s/ Disallow: /show/ Disallow: /u/ # 数据接口与媒体字节 Disallow: /api/ Disallow: /media/ # 鉴权。/oauth/ 整片不再挡:/oauth/register 与 /oauth/token 是 MCP 客户端和 # 目录探针要走的协议端点,没有任何可索引内容;唯一是页面的 /oauth/authorize # 自己带着 ,这里再挡一次 Disallow: /auth/ Disallow: /oauth/authorize # /mcp 也不在名单里了:它是 JSON-RPC 端点,未鉴权时只回一个 401,没有任何 # 可索引的东西;而 MCP 目录(Glama 等)的健康探针会读 robots.txt,被 Disallow # 就永远探不到,条目一直挂着 Unhealthy。「别索引」这件事改由响应头担—— # 见 src/index.ts 里给 /mcp 加的 `X-Robots-Tag: noindex, nofollow`, # 那条比 Disallow 更硬:被 Disallow 的地址仍可能靠外链进索引,而读不到页面的 # 爬虫也读不到 noindex。 # 前缀匹配的解毒剂:上面 `Disallow: /app` 会连 /app.css 和 /apple-touch-icon.png # 一起吞掉(robots.txt 按前缀匹配,不按路径段)。渲染型爬虫拿不到样式表时, # 会把指南页判成排版崩掉的一坨。/land.css 没被任何一条吞到,列在这里只是为了 # 三条样式/图标资产摆在一处看得见。 Allow: /app.css Allow: /land.css Allow: /apple-touch-icon.png # ── 第二组:AI 答案引擎的检索爬虫 ── # 这些主要是「用户问了问题,去抓一页来答」的那一类。 # (Google-Extended 严格说横跨两侧——它同时管 Gemini 的 grounding 与训练。 # 放在这一组是因为对我们有意义的那一面是答案里的 grounding;反正两组规则 # 今天一模一样,真要单独收紧训练时把它挪到第三组即可。) # 规则与第一组逐字相同;多出来的 Allow 行是摆明态度,功能上是冗余的。 User-agent: OAI-SearchBot User-agent: ChatGPT-User User-agent: PerplexityBot User-agent: Perplexity-User User-agent: ClaudeBot User-agent: Claude-User User-agent: Claude-SearchBot User-agent: anthropic-ai User-agent: Google-Extended User-agent: Bingbot Allow: /guide/ Allow: /sample/ Allow: /connect Allow: /llms.txt Disallow: /app Disallow: /account Disallow: /trip Disallow: /trip.html Disallow: /search Disallow: /unfiled Disallow: /upload Disallow: /keys Disallow: /signin Disallow: /pay Disallow: /s/ Disallow: /show/ Disallow: /u/ Disallow: /api/ Disallow: /media/ Disallow: /auth/ Disallow: /oauth/authorize Allow: /app.css Allow: /land.css Allow: /apple-touch-icon.png # ── 第三组:训练语料爬虫 ── # 同样放行公开营销面(理由见文件开头)。单独成组,是为了「哪天要收紧训练」 # 时有一个明确的、不会误伤检索的落点。 User-agent: GPTBot User-agent: CCBot User-agent: Applebot-Extended User-agent: meta-externalagent Allow: /guide/ Allow: /sample/ Allow: /connect Allow: /llms.txt Disallow: /app Disallow: /account Disallow: /trip Disallow: /trip.html Disallow: /search Disallow: /unfiled Disallow: /upload Disallow: /keys Disallow: /signin Disallow: /pay Disallow: /s/ Disallow: /show/ Disallow: /u/ Disallow: /api/ Disallow: /media/ Disallow: /auth/ Disallow: /oauth/authorize Allow: /app.css Allow: /land.css Allow: /apple-touch-icon.png Sitemap: https://vifo.app/sitemap.xml