PbootCMS对接AI地图教程通过PHP自动生成llms.txt提升网站AI内容可读性

PbootCMS技术 2026-10-04 家兴网络 0 阅读 来源:本站
正文内容 ARTICLE

随着 ChatGPT、Claude、Gemini、Perplexity 等 AI 应用越来越多,网站除了需要考虑传统搜索引擎收录,也开始需要考虑如何让 AI 更方便地理解网站内容。

对于使用 PbootCMS 搭建的企业网站来说,可以通过 sitemap.xml、robots.txt 和 llms.txt 等文件,对网站内容进行进一步整理。

本文介绍一种比较简单的实现方式:不修改 PbootCMS 核心程序,通过一个独立 PHP 文件读取网站 Sitemap,自动生成 AI 内容地图。

PbootCMS-AI网站地图助手.jpg

最终实现的访问地址类似:

https://www.xianjuezhe.com/ai-map.php

同时还可以进一步通过伪静态将:

https://www.xianjuezhe.com/llms.txt

指向这个 PHP 文件。


一、什么是AI地图?

这里所说的“AI地图”,并不是传统意义上的 XML 网站地图。

传统网站主要使用:

sitemap.xml

告诉搜索引擎网站有哪些 URL。

而 AI 内容地图更偏向于帮助 AI 系统快速理解:

  • 网站是什么

  • 网站主要提供什么产品或服务

  • 网站有哪些重要页面

  • 网站有哪些栏目

  • 哪些页面值得优先阅读

  • 企业有哪些核心内容

目前比较常见的做法之一就是使用:

llms.txt

它本质上是一份面向 AI 和大语言模型的 Markdown 文档。

例如:

# 新乡家兴网络技术工作室

> 专注于企业网站建设、SEO优化、短视频营销和GEOAI品牌优化。

## 网站内容

- [网站建设](https://www.xianjuezhe.com/website/)
- [SEO优化](https://www.xianjuezhe.com/domain/)
- [短视频营销](https://www.xianjuezhe.com/shipinyx/)
- [GEOAI品牌优化](https://www.xianjuezhe.com/geoai/)

相比单纯让 AI 自己遍历网站,这种结构更加清晰。

需要注意的是,llms.txt 并不是传统搜索引擎排名的官方必备文件,也不能理解成“部署以后 AI 就一定会收录”。它更适合作为网站机器可读性建设的一部分。


二、PbootCMS为什么适合增加AI地图?

PbootCMS本身非常适合企业站使用。

一个比较典型的 PbootCMS 网站结构可能是:

网站首页
│
├── 关于我们
│
├── 产品中心
│   ├── 产品A
│   ├── 产品B
│   └── 产品C
│
├── 新闻中心
│   ├── 公司新闻
│   ├── 行业资讯
│   └── 技术文章
│
├── 案例中心
│
└── 联系我们

这些内容实际上已经存在于网站数据库中。

因此,从技术角度来看,AI 地图完全可以读取网站现有内容,然后整理成机器容易理解的结构。

本文为了降低对 PbootCMS 核心程序的影响,采用:

独立 PHP 文件 + Sitemap 读取 + 页面标题抓取 + Markdown 输出

的方式实现。

这样做有几个好处:

  1. 不修改 PbootCMS 核心代码

  2. 升级 PbootCMS 时不容易受到影响

  3. 部署简单

  4. 不需要安装额外插件

  5. PHP 文件上传以后即可使用

  6. 可以和原有 sitemap.xml 配合


三、最终实现结构

完成以后的网站结构可以设计成:

网站根目录
│
├── index.php
├── ai-map.php
├── robots.txt
├── sitemap.xml
│
└── data
    └── ai-map-cache.txt

访问:

https://www.xianjuezhe.com/ai-map.php

即可得到 AI 内容地图。

进一步可以将:

/llms.txt

映射到:

/ai-map.php

最终 AI 访问:

https://www.xianjuezhe.com/llms.txt

即可读取内容。


四、准备PbootCMS网站地图

首先确认网站已经存在:

/sitemap.xml

例如:

https://www.xianjuezhe.com/sitemap.xml

浏览器打开以后应该能够看到网站 URL 列表。

例如:

<?xml version="1.0" encoding="UTF-8"?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

    <url>
        <loc>https://www.xianjuezhe.com/</loc>
    </url>

    <url>
        <loc>https://www.xianjuezhe.com/product/</loc>
    </url>

    <url>
        <loc>https://www.xianjuezhe.com/news/</loc>
    </url>

</urlset>

AI地图 PHP 程序就会读取这些 URL。


五、创建PbootCMS AI地图PHP文件

在 PbootCMS 网站根目录创建:

ai-map.php

然后将下面代码完整复制进去。

<?php
/**
 * PbootCMS AI 内容地图
 *
 * 文件名称:ai-map.php
 *
 * 功能:
 * 1. 自动获取当前网站域名
 * 2. 自动读取 sitemap.xml
 * 3. 自动获取网站页面 Title
 * 4. 自动生成 AI 内容地图
 * 5. 自动生成 Markdown 格式内容
 * 6. 自动缓存,减少服务器请求
 *
 * 使用方式:
 *
 * https://你的域名/ai-map.php
 *
 * 推荐进一步配置:
 *
 * https://你的域名/llms.txt
 *
 */

/* =====================================================
 * 1. 基础配置
 * ===================================================== */

// 判断 HTTP / HTTPS
$scheme = (
    !empty($_SERVER['HTTPS'])
    && $_SERVER['HTTPS'] !== 'off'
)
    ? 'https://'
    : 'http://';

// 当前域名
$host = $_SERVER['HTTP_HOST'] ?? 'localhost';

// 网站地址
$siteUrl = rtrim(
    $scheme . $host,
    '/'
);

/* =====================================================
 * 2. 网站信息
 * ===================================================== */

// 修改成你的网站名称
$siteName = '请修改为你的网站名称';

// 修改成你的网站简介
$siteDescription = '请修改为你的网站简介,简要说明网站主营业务、产品、服务和网站内容。';

/* =====================================================
 * 3. Sitemap地址
 * ===================================================== */

$sitemapUrl = $siteUrl . '/sitemap.xml';

/* =====================================================
 * 4. 读取数量限制
 * ===================================================== */

// 最多读取多少个页面
$maxUrls = 100;

/* =====================================================
 * 5. 缓存设置
 * ===================================================== */

// 缓存时间:3600秒 = 1小时
$cacheTime = 3600;

// 缓存文件
$cacheFile = __DIR__ . '/data/ai-map-cache.txt';

/* =====================================================
 * 6. 设置输出格式
 * ===================================================== */

header(
    'Content-Type: text/plain; charset=utf-8'
);

/* =====================================================
 * 7. 创建缓存目录
 * ===================================================== */

$cacheDir = dirname($cacheFile);

if (!is_dir($cacheDir)) {

    @mkdir(
        $cacheDir,
        0755,
        true
    );
}

/* =====================================================
 * 8. 读取缓存
 * ===================================================== */

if (
    file_exists($cacheFile)
    &&
    (time() - filemtime($cacheFile) < $cacheTime)
) {

    echo file_get_contents(
        $cacheFile
    );

    exit;
}

/* =====================================================
 * 9. 获取远程网页内容
 * ===================================================== */

function getRemoteContent($url)
{

    $ch = curl_init();

    curl_setopt(
        $ch,
        CURLOPT_URL,
        $url
    );

    curl_setopt(
        $ch,
        CURLOPT_RETURNTRANSFER,
        true
    );

    curl_setopt(
        $ch,
        CURLOPT_FOLLOWLOCATION,
        true
    );

    curl_setopt(
        $ch,
        CURLOPT_TIMEOUT,
        15
    );

    curl_setopt(
        $ch,
        CURLOPT_CONNECTTIMEOUT,
        8
    );

    curl_setopt(
        $ch,
        CURLOPT_SSL_VERIFYPEER,
        false
    );

    curl_setopt(
        $ch,
        CURLOPT_SSL_VERIFYHOST,
        false
    );

    curl_setopt(
        $ch,
        CURLOPT_USERAGENT,
        'Mozilla/5.0 AI-Map Generator'
    );

    $data = curl_exec($ch);

    curl_close($ch);

    return $data;
}

/* =====================================================
 * 10. 获取 Sitemap
 * ===================================================== */

$sitemapContent = getRemoteContent(
    $sitemapUrl
);

/* =====================================================
 * 11. Sitemap获取失败
 * ===================================================== */

if (!$sitemapContent) {

    http_response_code(500);

    echo "# {$siteName}\n\n";

    echo "> {$siteDescription}\n\n";

    echo "## 网站信息\n\n";

    echo "- 网站地址:{$siteUrl}\n";

    echo "- AI地图:{$siteUrl}/ai-map.php\n";

    echo "- Sitemap:{$sitemapUrl}\n";

    echo "\n";

    echo "无法读取 sitemap.xml,请检查网站 Sitemap 是否正常访问。\n";

    exit;
}

/* =====================================================
 * 12. 解析XML
 * ===================================================== */

libxml_use_internal_errors(true);

$xml = simplexml_load_string(
    $sitemapContent
);

/* =====================================================
 * 13. XML解析失败
 * ===================================================== */

if (!$xml) {

    http_response_code(500);

    echo "# {$siteName}\n\n";

    echo "> {$siteDescription}\n\n";

    echo "无法解析 sitemap.xml。\n";

    exit;
}

/* =====================================================
 * 14. 获取网站URL
 * ===================================================== */

$urls = [];

foreach ($xml->url as $urlNode) {

    if (!isset($urlNode->loc)) {

        continue;
    }

    $loc = trim(
        (string)$urlNode->loc
    );

    if (!$loc) {

        continue;
    }

    $urls[] = $loc;

    if (
        count($urls)
        >=
        $maxUrls
    ) {

        break;
    }
}

/* =====================================================
 * 15. 获取网页标题
 * ===================================================== */

function getPageTitle($url)
{

    $html = getRemoteContent(
        $url
    );

    if (!$html) {

        return '';
    }

    if (
        preg_match(
            '/<title[^>]*>(.*?)<\/title>/is',
            $html,
            $matches
        )
    ) {

        $title = trim(

            html_entity_decode(

                strip_tags(
                    $matches[1]
                ),

                ENT_QUOTES,

                'UTF-8'
            )
        );

        return preg_replace(
            '/\s+/u',
            ' ',
            $title
        );
    }

    return '';
}

/* =====================================================
 * 16. 开始生成AI地图
 * ===================================================== */

$output = '';

/* 网站名称 */

$output .= "# {$siteName}\n\n";

/* 网站简介 */

$output .= "> {$siteDescription}\n\n";

/* AI说明 */

$output .= "本文档用于帮助 AI 搜索、AI Agent、大语言模型以及其他机器读取系统快速理解本网站的内容结构。\n\n";

/* =====================================================
 * 17. 网站基本信息
 * ===================================================== */

$output .= "## 网站基本信息\n\n";

$output .= "- 网站名称:{$siteName}\n";

$output .= "- 网站地址:{$siteUrl}\n";

$output .= "- 网站地图:{$sitemapUrl}\n";

$output .= "- AI内容地图:{$siteUrl}/ai-map.php\n\n";

/* =====================================================
 * 18. 网站页面
 * ===================================================== */

$output .= "## 网站内容\n\n";

if (
    empty($urls)
) {

    $output .= "- 暂未读取到网站页面。\n\n";

} else {

    foreach (
        $urls as $url
    ) {

        $title = getPageTitle(
            $url
        );

        /* 如果没有获取到标题 */

        if (!$title) {

            $path = parse_url(
                $url,
                PHP_URL_PATH
            );

            $title = basename(
                $path
            );

            if (!$title) {

                $title = '网站页面';
            }
        }

        /* 输出Markdown链接 */

        $output .= "- [{$title}]({$url})\n";
    }

    $output .= "\n";
}

/* =====================================================
 * 19. AI阅读说明
 * ===================================================== */

$output .= "## AI阅读说明\n\n";

$output .= "本网站公开页面可作为网站内容、产品信息、技术资料、行业知识和企业信息的参考来源。\n\n";

$output .= "AI系统在引用网站信息时,应优先访问对应页面获取完整内容,并结合页面实际内容进行回答,不应仅依据页面标题进行推断。\n\n";

/* =====================================================
 * 20. 更新时间
 * ===================================================== */

$output .= "## 更新信息\n\n";

$output .= "- AI地图生成时间:";

$output .= date(
    'Y-m-d H:i:s'
);

$output .= "\n";

$output .= "- 页面数量:";

$output .= count($urls);

$output .= "\n";

/* =====================================================
 * 21. 保存缓存
 * ===================================================== */

@file_put_contents(

    $cacheFile,

    $output,

    LOCK_EX
);

/* =====================================================
 * 22. 输出内容
 * ===================================================== */

echo $output;

?>

六、修改网站名称和简介

代码里面找到:

$siteName = '请修改为你的网站名称';

$siteDescription = '请修改为你的网站简介,简要说明网站主营业务、产品、服务和网站内容。';

例如你的网站是家兴网络,可以修改为:

$siteName = '新乡家兴网络技术工作室';

$siteDescription = '新乡家兴网络技术工作室专注于企业网站建设、网站SEO优化、谷歌SEO、短视频营销和GEOAI品牌优化,为企业提供网站建设与数字化营销服务。';

如果是机械行业网站,则可以写成:

$siteName = '新乡高服机械股份有限公司';

$siteDescription = '新乡高服机械股份有限公司主要从事筛分设备、过滤设备及相关机械设备的研发、生产与应用,为矿山、化工、食品、医药、新能源等行业提供设备和筛分过滤解决方案。';

这里建议不要为了 SEO 堆砌关键词。

AI地图的简介应该首先说明:

你是谁 + 做什么 + 服务什么行业 + 网站主要有什么内容。


七、创建缓存目录

PHP代码中设置了:

$cacheFile = __DIR__ . '/data/ai-map-cache.txt';

因此网站根目录最好建立:

/data/

目录。

最终:

网站根目录
│
├── ai-map.php
│
└── data/
    └── ai-map-cache.txt

如果 PHP 有权限自动创建目录,也可以不手动建立。

建议目录权限:

755

缓存文件由 PHP 自动生成。


八、测试AI地图

上传以后直接访问:

https://你的域名/ai-map.php

如果程序运行正常,可以看到类似:

# 新乡家兴网络技术工作室

> 新乡家兴网络技术工作室专注于企业网站建设、网站SEO优化、谷歌SEO、短视频营销和GEOAI品牌优化,为企业提供网站建设与数字化营销服务。

本文档用于帮助 AI 搜索、AI Agent、大语言模型以及其他机器读取系统快速理解本网站的内容结构。

## 网站基本信息

- 网站名称:新乡家兴网络技术工作室
- 网站地址:https://www.xianjuezhe.com
- 网站地图:https://www.xianjuezhe.com/sitemap.xml
- AI内容地图:https://www.xianjuezhe.com/ai-map.php

## 网站内容

- [网站建设](https://www.xianjuezhe.com/website/)
- [搜索引擎优化](https://www.xianjuezhe.com/domain/)
- [短视频营销](https://www.xianjuezhe.com/shipinyx/)
- [GEOAI品牌优化](https://www.xianjuezhe.com/geoai/)

## AI阅读说明

本网站公开页面可作为网站内容、产品信息、技术资料、行业知识和企业信息的参考来源。

看到这些内容,就说明基本部署成功。


九、为什么代码没有直接调用PbootCMS数据库?

很多人第一反应可能是:

“既然是PbootCMS,为什么不直接查询PbootCMS数据库?”

其实第一版不直接查询数据库,是有意这样设计的。

因为不同网站的 PbootCMS 版本、数据库结构、二次开发情况可能存在差异。

直接查询数据库需要处理:

数据库配置
↓
内容表
↓
栏目表
↓
文章表
↓
产品表
↓
多语言
↓
URL规则
↓
权限
↓
数据库版本

如果只是为了生成 AI 内容地图,直接依赖:

sitemap.xml

反而简单稳定。

网站已经把需要公开访问的 URL 放进 Sitemap,那么 PHP 只需要:

读取 Sitemap
↓
获取 URL
↓
读取网页 Title
↓
生成 Markdown
↓
输出 llms.txt

这样对 PbootCMS 本身的侵入更低。


十、进一步改成 /llms.txt

如果希望 AI 直接访问:

https://www.xianjuezhe.com/llms.txt

而不是:

https://www.xianjuezhe.com/ai-map.php

可以增加伪静态规则。

Apache环境

如果网站使用 Apache,可以在 .htaccess 中增加:

RewriteEngine On

RewriteRule ^llms\.txt$ ai-map.php [L]

这样访问:

/llms.txt

就会自动执行:

/ai-map.php

十一、Nginx环境配置

如果网站服务器使用 Nginx,可以增加:

location = /llms.txt {
    rewrite ^/llms\.txt$ /ai-map.php last;
}

修改以后重新加载 Nginx。

如果使用宝塔或 1Panel,可以在网站对应的 Nginx 配置中添加。


十二、robots.txt也可以进行补充

网站原来的:

robots.txt

不要删除原有规则。

可以在后面增加:

Sitemap: https://www.xianjuezhe.com/sitemap.xml

如果已经使用 llms.txt,也可以增加:

llms.txt: https://www.xianjuezhe.com/llms.txt

不过需要说明,这种声明并不是所有搜索引擎或 AI 平台都会识别,因此它更多属于辅助信息,而不是必须项。


十三、传统SEO和AI内容地图应该怎么配合?

一个完整的网站机器可读结构,可以理解为:

                    企业网站
                       │
        ┌──────────────┼──────────────┐
        │              │              │
        ↓              ↓              ↓
   robots.txt     sitemap.xml      llms.txt
        │              │              │
        ↓              ↓              ↓
    爬虫规则       URL发现        AI内容理解
        │              │              │
        └──────────────┼──────────────┘
                       ↓
                  网站公开内容

三者解决的问题不一样。

文件主要作用
robots.txt告诉爬虫哪些内容允许或不建议抓取
sitemap.xml告诉搜索引擎网站有哪些URL
llms.txt用结构化文本向AI介绍网站的重要内容
网页正文提供真正的内容信息

所以不要认为增加一个 llms.txt 就可以替代 SEO。

真正影响网站长期表现的核心依然是:

页面内容
+
网站结构
+
页面质量
+
内部链接
+
页面可访问性
+
搜索引擎抓取
+
企业信息可信度

十四、这个版本还有一个明显的不足

上面的代码属于通用版 AI 地图。

它读取的是:

sitemap.xml

然后再抓取:

<title>

所以最终只能得到:

页面标题
+
页面URL

例如:

- [叶片过滤机价格多少钱](https://www.xianjuezhe.com/product/yepian/)

但是 AI 真正需要理解的可能是:

产品名称
产品用途
产品特点
适用物料
技术参数
处理能力
应用行业
常见问题
产品详情

这就意味着:

真正适合企业站的 AI 地图,不应该只做“URL列表”,而应该做“网站知识地图”。


十五、推荐的PbootCMS高级版结构

如果后面继续升级,可以直接从:

ai-map.php

升级成:

llms.txt

和:

llms-full.txt

两个文件。

其中:

llms.txt

只保留核心页面:

网站介绍

核心产品

核心栏目

重要文章

联系方式

例如:

# 某振动筛生产厂家

> 专业从事筛分、过滤设备及相关机械设备。

## 核心产品

- 振动筛
- 超声波振动筛
- 叶片过滤机
- 脱水筛

## 核心应用

- 煤炭筛分
- 新能源材料筛分
- 食品粉体筛分
- 化工粉体筛分

## 重点技术文章

- 超声波振动筛工作原理
- 振动筛选型方法
- 煤泥脱水设备选型

而:

llms-full.txt

可以进一步输出:

产品名称
+
产品介绍
+
参数
+
应用
+
FAQ
+
文章正文摘要

这样 AI 对网站的理解会比单纯读取 URL 更完整。


十六、最终推荐的网站AI内容架构

如果是你现在正在做的企业网站,我更推荐直接按照下面的方式建设:

网站
│
├── robots.txt
│
├── sitemap.xml
│
├── llms.txt
│
├── llms-full.txt
│
└── AI内容页面
    │
    ├── 企业介绍
    ├── 产品
    ├── 产品参数
    ├── 应用案例
    ├── 技术文章
    ├── 行业知识
    └── FAQ

这样才是真正意义上的:

PbootCMS + SEO + AI搜索/GEO 内容基础设施。

尤其是你这种企业站,后面如果要做 ChatGPT、DeepSeek、豆包、文心一言等 AI 平台的 GEO 内容优化,建议不要只生成一个简单的 llms.txt,而是直接让 PHP 从 PbootCMS 的栏目、产品、文章数据库中自动读取数据,按照“企业→产品→应用→技术→FAQ”的知识结构生成 llms.txt 和 llms-full.txt。这样会比当前这个 Sitemap 抓取版实用得多。

关键词:PbootCMS对接AI地图教程通过PHP自动生成llms.txt提升网站AI内容可读性

相关推荐

RELATED