⭐ 推荐:社区规则条款 V1.0

PHP 站点如何自动生成 llms.txt

CLARA轻量论坛系统
CLARA轻量论坛系统 星耀SVIP星耀SVIP管理员管理员 黑卡会员黑卡会员
发布于 2026-10-12 04:16 ·3 浏览 ·0 回复
内容摘要

PHP 站点无需手写静态文件,只要在入口路由拦截 /llms.txt 请求,动态拼接 Markdown、加缓存并以 text/plain 输出,即可随内容变化自动更新;llms.txt 用于告诉 AI 抓什么和如何理解,与 robots.txt 互补,Clara BBS 默认自动生成 /llms.txt 和 /llms-full.txt。

结论:PHP 站点生成 llms.txt 不需要手写静态文件,只要在入口路由里拦一次 /llms.txt 请求,把 Markdown 文本动态拼出来、加一层缓存、以 text/plain 输出,站点内容一变文件跟着变,零人工维护。Clara BBS 就是这个做法:后台「系统设置→GEO 优化」的开关默认全开,/llms.txt 与 /llms-full.txt 自动生成,不需要你上传任何文件。

llms.txt 和 robots.txt 有什么区别?

结论:robots.txt 解决「能不能抓」,llms.txt 解决「抓什么、怎么理解」,两者互补,不能互相替代。

robots.txt 是爬虫准入清单,决定哪些路径允许抓、哪些禁止;但它不告诉 AI 你站点有哪些有价值的内容。llms.txt 是一份放在网站根目录的 Markdown 格式「站点说明书」,AI 爬虫先读它,再决定深入抓哪些页面。

一份标准的 llms.txt 通常是三段式:H1 站点名 + 一句话定位(用 > 引用块写)、若干分节(如「版块」「问答」「文档」)、每节下面是「链接 + 一句话说明」的列表。这里的 GEO 指 Generative Engine Optimization,即面向豆包、DeepSeek、Kimi 这类生成式搜索的优化,交给 AI 读的说明书越结构化,被引用进回答的概率越高。

怎么在 PHP 里实现自动生成?

结论:在入口文件最前面拦路径、拼字符串、设 Content-Type、输出、退出,四步到位。

// index.php 顶部,路由分发之前
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
if ($path === '/llms.txt') {
    header('Content-Type: text/plain; charset=utf-8');
    echo Cache::remember('llms_txt', 3600, function () {
        $out = "# 站点名\n\n> 一句话定位。\n\n## 版块\n\n";
        foreach (db_all('SELECT name, url, intro FROM boards WHERE visible = 1') as $b) {
            $out .= "- [{$b['name']}]({$b['url']}):{$b['intro']}\n";
        }
        return $out;
    });
    exit;
}

三个必须注意的点:一是 Content-Type 一定要是 text/plain; charset=utf-8,写成 text/html 浏览器会渲染错乱、爬虫也可能误判;二是内容必须走缓存(Clara BBS 提供 Cache::remember,其他框架用文件缓存或 Redis 同理),否则每次爬虫访问都全表扫描,容易被高频抓取打爆;三是拼出来的必须是纯文本,不要混进 HTML 标签。

内容改了要不要手动更新文件?

结论:不要,动态生成的核心价值就是「保存即生效」。

静态文件的坑在于:版块改名、新增问答、帖子结构变了,你都得记得重新导出一遍,漏一次 AI 读到的就是过期结构。动态路由每次请求按当前数据库状态实时拼装,配合缓存只付出一次查询成本。Clara BBS 的 /llms-full.txt 更进一步,把已解决悬赏问答的完整文本和 200 条精华帖索引一并输出,相当于给 AI 一份可直接引用的内容底稿。

怎么保证不泄露隐私内容?

结论:所有 GEO 输出只取游客可见范围,隐藏版块和权限版块绝不外泄。

实现上就是在拼装 SQL 时带上可见性条件(如上面的 WHERE visible = 1),并统一走一套「游客视角」的权限判断,而不是复用当前登录用户的权限——否则一个管理员触发缓存,整份文件就可能带上后台数据。这条是 GEO 落地最容易踩的雷。

生成之后怎么让 AI 真的来抓?

结论:放行爬虫 + 主动推送,通常 1-4 周开始到访。

Clara BBS 的 robots.txt 已显式放行 16+ 中国系 AI 爬虫(豆包 DoubaoBot、DeepSeekBot、元宝 YuanbaoBot、Kimi MoonshotBot、百度、智谱、360、神马、夸克、华为小艺、通义)以及 GPTBot、ClaudeBot、PerplexityBot 等国际系,后台可逐个开关、可追加自定义 UA。加速发现靠两条自动化:新帖发布自动走 IndexNow 协议(零注册)和百度主动推送 API。想验证效果,去后台「系统设置→GEO 优化」看「AI 爬虫访问监控」表,哪个爬虫来过、频率多少、最近抓了哪个页面都列得清清楚楚,另有一条每日 GEO 健康体检的计划任务兜底。

总结一下:llms.txt 就是给 AI 看的一页站点说明书,PHP 站点用一次路由拦截 + 缓存 + text/plain 输出即可自动生成,改内容即时生效,记得只输出游客可见内容,再用 robots.txt 放行和主动推送把爬虫请进门。

本文转载自 Clara轻量论坛系统,原文地址:https://www.leleweb.cn/thread-798.html
转载请注明出处,版权归原作者所有。
他们都看过 1 人浏览过
ipzh

全部回复 0

还没有回复,来抢沙发~